MFMessageComposeViewController自动解雇

时间:2011-12-10 04:51:16

标签: iphone objective-c ios user-interface mfmailcomposeviewcontroller

在我的应用程序中,我向用户展示了一个MFMessageViewController,10秒后,我通过调用

自动关闭它
[self.presentedViewController performSelector:@selector(dismissModalViewControllerAnimated:) 
    withObject:[NSNumber numberWithBool:YES] afterDelay:10];

问题是,如果用户已经开始使用MFM(即通过键入或点击加号或编辑正文来添加收件人),我无法取消此呼叫。我知道我可以打电话

[NSObject cancelPreviousPerformRequestsWithTarget:self.presentedViewController 
    selector:@selector(dismissModalViewControllerAnimated:) object:[NSNumber 
    numberWithBool:YES]];

但我无法知道用户何时开始以上述方式编辑MFM。有解决方案吗?

2 个答案:

答案 0 :(得分:2)

我建议你将MFMessageViewController的解雇留给用户。用户调用了它&如果解雇它,他将是最好的法官。在这种情况下,我认为自动解雇是不安全的。在某些情况下可能会惹恼用户。

它只是不直观。你为什么要在10秒内解雇?随它去吧。

  

一切都应尽可能简单,但不能简单 -   阿尔伯特爱因斯坦

答案 1 :(得分:1)

正如Srikar已经指出的那样,这可能是一个坏主意,而不是用户期望的东西。

那就是说,您可以观察UIKeyboardWillShowNotification通知。与邮件视图控制器的任何交互都会调出键盘,因此如果用户什么都不做,它就不会显示出来。当然,不能保证用户实际输入任何东西,但我认为这是你最接近的。