在我的应用程序中,我向用户展示了一个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。有解决方案吗?
答案 0 :(得分:2)
我建议你将MFMessageViewController
的解雇留给用户。用户调用了它&如果解雇它,他将是最好的法官。在这种情况下,我认为自动解雇是不安全的。在某些情况下可能会惹恼用户。
它只是不直观。你为什么要在10秒内解雇?随它去吧。
一切都应尽可能简单,但不能简单 - 阿尔伯特爱因斯坦
答案 1 :(得分:1)
正如Srikar已经指出的那样,这可能是一个坏主意,而不是用户期望的东西。
那就是说,您可以观察UIKeyboardWillShowNotification
通知。与邮件视图控制器的任何交互都会调出键盘,因此如果用户什么都不做,它就不会显示出来。当然,不能保证用户实际输入任何东西,但我认为这是你最接近的。