我的 MFMessageComposeViewController 遇到问题。我想在应用程序内使用短信。 发送短信一切正常,到目前为止一切顺利。但是,当我点击取消按钮(或发送按钮)时,我的 View 顶部消失了,但键盘没有消失。这可能是因为我不使用模态视图,而只使用 addSubview。
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
if (result == MessageComposeResultCancelled)
{
NSLog(@"Message annulé");
[controller resignFirstResponder];
[controller.view removeFromSuperview];
[controller release];
}
else if (result == MessageComposeResultSent)
{
NSLog(@"Message envoyé");
...
}
else
{
NSLog(@"Message non envoyé");
...
}
}
-(void)sendSMS:(NSString *)bodyOfMessage :(Phone *)recipient
{
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText])
{
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
NSMutableArray *toRecipients = [[NSMutableArray alloc]init];
[toRecipients addObject:recipients.phoneNumber];
[picker setRecipients:(NSArray *)toRecipients];
[toRecipients release];
NSString *bodyString = nil;
bodyString = bodyOfMessage;
[picker setBody:bodyString];
[self addSubView:picker.view];
[picker release];
}
}
有什么想法吗?我只能使用 modalView 吗?
抱歉拼写错误...
谢谢。汤米
最佳答案
是的,你必须使用modalviewcontroller。
[self presentModalViewController:picker];
此外,您还创建了 MFMessageComposeViewController 的两个实例,第一个用于检查它是否可以发送文本,然后另一个用于实际显示它。我建议只创建一个,这对内存更好:)而且第一个正在泄漏,因为您没有释放它。祝你好运!
关于iphone - MFMessageComposeViewController 关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225894/