Iphone MFMessageComposeViewController自动解除

Iphone MFMessageComposeViewController自动解除,iphone,objective-c,ios,user-interface,mfmailcomposeviewcontroller,Iphone,Objective C,Ios,User Interface,Mfmailcomposeviewcontroller,在我的应用程序中,我向用户展示了一个MFMessageViewController,10秒钟后,我会通过调用自动关闭它 [self.presentedViewController performSelector:@selector(dismissModalViewControllerAnimated:) withObject:[NSNumber numberWithBool:YES] afterDelay:10]; 问题是,如果用户已经开始使用MFM(即通过键入或点击加号或编辑正文来

在我的应用程序中,我向用户展示了一个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。有解决方法吗?

我建议您将取消
MFMessageViewController
的任务留给用户。用户已经调用了它&他将是最好的判断者。在这种情况下,我认为自动解雇是不安全的&在某些情况下可能会激怒用户

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

一切都应该尽可能简单,但不能简单- 爱因斯坦


我建议您将
MFMessageViewController
的解除留给用户。用户已经调用了它&他将是最好的判断者。在这种情况下,我认为自动解雇是不安全的&在某些情况下可能会激怒用户

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

一切都应该尽可能简单,但不能简单- 爱因斯坦


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


也就是说,您可以观察
ui键盘willshownotification
通知。与邮件视图控制器的任何交互都会打开键盘,因此如果用户什么也不做,它就不会显示。当然,不能保证用户确实键入了任何内容,但我认为这是最接近您的内容。

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


也就是说,您可以观察
ui键盘willshownotification
通知。与邮件视图控制器的任何交互都会打开键盘,因此如果用户什么也不做,它就不会显示。当然,不能保证用户确实键入了任何内容,但我认为这是最接近您的内容。

是的,但在这种情况下,如果用户没有注意到并没有关闭MFM,则应用程序其余部分的有效性将受到影响。我不想把这样的事情留给机会;当用户开始与MFM交互时,是否没有任何方式接收通知?你说的“应用程序的有效性受到损害”是什么意思?用户打开mailCompose窗口的原因。让他决定什么时候关门。在这种情况下,任何其他方式都是违反直觉的&只是不正确……不,因为用户可能不希望MFM第一次出现,并且需要几秒钟才能创建它/形成消息体。直到MFM被解除,应用程序的真正内容才会发生,这就是为什么我有一个计时器。我不希望用户启动应用程序,然后立即将设备置于睡眠状态,期望应用程序正常工作,三小时后回来看到MFM盯着他看,并且没有记录任何数据。是的,但在这种情况下,如果用户没有注意到,并且没有关闭MFM,那么应用程序其余部分的有效性就会受到影响。我不想把这样的事情留给机会;当用户开始与MFM交互时,是否没有任何方式接收通知?你说的“应用程序的有效性受到损害”是什么意思?用户打开mailCompose窗口的原因。让他决定什么时候关门。在这种情况下,任何其他方式都是违反直觉的&只是不正确……不,因为用户可能不希望MFM第一次出现,并且需要几秒钟才能创建它/形成消息体。直到MFM被解除,应用程序的真正内容才会发生,这就是为什么我有一个计时器。我不希望用户启动应用程序,然后立即将设备置于睡眠状态,期望应用程序正常工作,三个小时后回来看到MFM盯着他看,没有记录任何数据。