邮件界面取消按钮不起作用 ios - MFMailComposeViewController 类
Posted
技术标签:
【中文标题】邮件界面取消按钮不起作用 ios - MFMailComposeViewController 类【英文标题】:mail interface cancel button not working ios - MFMailComposeViewController class 【发布时间】:2011-12-03 10:21:18 【问题描述】:我有一个像这样添加到当前窗口顶部的 webview 对象 (aWebView) -
UIWindow *webWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 20, 320,460)];
[webWindow addSubview:aWebView];
[webWindow makeKeyAndVisible];
我有一个 ViewController (viewcontrollerobj),它是 aWebView 的子视图 -
[webView addSubview:viewcontrollerobj.view];
然后我在 ViewController 中调用 sendInAppMail 方法-
[sviewcontroller sendInAppMail];
SendInAppMail 看起来像这样 -
MFMailComposeViewController *mailController = [[[MFMailComposeViewController alloc] init] autorelease];
if([MFMailComposeViewController canSendMail])
[mailController setMessageBody:@"hello" ishtml:NO];
[mailController setSubject:@"subject"];
mailController.mailComposeDelegate = self;
[self presentModalViewController:mailController animated:YES];
[mailController release];
didFinishWithResult 看起来像这样 -
- (void)mailComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
switch (result)
case MFMailComposeResultCancelled:
break;
case MFMailComposeResultSent:
break;
default:
break;
[self dismissModalViewControllerAnimated:YES];
邮件视图控制器显示正常。问题是,当我点击取消时,它会显示删除/保存草稿选项,并且在单击删除/保存后,邮件视图控制器不会消失!
当我查看控制台时,它会显示此日志消息 - “呈现由其超级视图剪辑的操作表。某些控件可能不会响应触摸。在 iPhone 上尝试 -[UIActionSheet showFromTabBar:] 或 -[UIActionSheet showFromToolbar:] 而不是 -[UIActionSheet showInView:]。” 我没有在任何地方使用 UIActionSheet,过去也没有使用过,所以我无法理解它在说什么。
我看过这个 - https://***.com/a/6015957/516938 但似乎给出的解决方案是针对特定情况的。
【问题讨论】:
【参考方案1】:不确定这是不是问题,但这是我首先要看的。
根据您收到的错误消息,这听起来像是其中一个视图(您定义的 aWebView
或来自 viewcontrollerobj
的视图)没有为 MFMailComposeViewController
提供足够的空间,这意味着它的尺寸小于MFMailComposeViewController
的要求。它实际上并没有剪裁内容,所以你会看到它,但它会阻止触摸,因此它们不会到达MFMailComposeViewController
。
我希望这足够清楚 - 我很难正确地描述我的想法。
【讨论】:
我不认为它会阻止触摸。因为当我第一次点击取消时,它会显示删除/保存草稿选项。我在 didFinishWithResult 中使用 NSLOg 语句再次运行它,似乎根本没有调用它。理想情况下,当我点击删除草稿时,它应该被调用并且整个邮件对话框应该消失! 天啊!愚蠢地误认为它的“mailComposeController”而不是“mailComposeViewController” 哈哈!哎呀。很高兴您发现了问题。以上是关于邮件界面取消按钮不起作用 ios - MFMailComposeViewController 类的主要内容,如果未能解决你的问题,请参考以下文章
尝试从应用内发送电子邮件但不起作用 - Swift (iOS)
MFMessageComposeViewController 取消按钮不起作用
在 iOS 8 中更改 UISearchBar 取消按钮文本