2010年7月25日星期日

iso 4 中textFieldShouldBeginEditing的问题

在ios 4 中textFieldShouldBeginEditing,会调用两次。如果有需要在textFieldShouldBeginEditing处理的时间时,需要添加一个BOOL变量来检查是否 已经触发该事件。以免导致莫名其妙的问题。

一般都是在此事件中return NO,然后自定义一个ActionSheet 或者AlertView。当你发现ActionSheet或AlertView显示很诡异时,检查一下是不是被调用两次了。
Share:

2010年7月9日星期五

iphone 中发送短信代码(ios 4)

//MFMessageComposeViewController 只在ios 4.0 后可用

Class smsClass = NSClassFromString(@"MFMessageComposeViewController");
if (smsClass != nil){

  if ([smsClass canSendText]){
    [self displaySMSComposerSheet];
  }
 else {
     [self launchSmsAppOnDevice];
 }
}
else {
  [self launchSmsAppOnDevice];
}

-(void)launchSmsAppOnDevice
{
  UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
  pasteboard.string =@"sms body";
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:// "]];
}

#pragma mark -
#pragma mark Componse sms

-(void)displaySMSComposerSheet
{

  MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
  picker.body = "sms body";
  picker.messageComposeDelegate = self;
  [self presentModalViewController:picker animated:YES];
  [picker release];
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
  [self dismissModalViewControllerAnimated:YES];
}
Share: