MFMessageComposeViewController编辑To:字段的反馈

时间:2012-09-14 07:21:35

标签: ios mfmessagecomposeview

我有一个使用MFMessageComposeViewController提供的标准短信功能的应用程序。我在SMS对话框的TO:字段中可以看到一组收件人。用户可以删除或添加新收件人。这没关系,但我的应用程序需要知道用户何时编辑此TO:字段,因为当用户更改接收器字段时,我必须执行一些其他操作。 是否有任何方法可以知道收件人字段是否已编辑或是否在“取消”按钮单击或“发送”按钮单击?

之后

我的代码中有方法回调:

-(void)messageComposeViewController:(MFMessageComposeViewController *)controller    didFinishWithResult:(MessageComposeResult)result

此方法有controller.recipients但此数组在调用消息控制器视图之前包含收件人。

2 个答案:

答案 0 :(得分:0)

从iOS 7开始,这是不可能的。委托方法提供的唯一信息是用户是选择取消消息,发送消息还是发送失败。

来自the documentation

  

当用户点击其中一个按钮以关闭时,将调用此方法   消息组合界面。你实现这个方法   应该关闭视图控制器并执行任何其他操作   需要处理发送消息。结果参数   让您知道用户是选择取消还是发送消息或   是否发送邮件失败。

答案 1 :(得分:0)

为了增加Enrico的答案,不仅从公共API的角度来看这是不可能的,它也不可能通过欺骗,因为从iOS6开始,邮件和消息组成视图控制器由不同于您自己的进程呈现,并且视图层次结构对应用程序完全隐藏。实际上,如果您要检查消息撰写视图控制器视图的视图层次结构,您会注意到屏幕上的内容实际上并不存在于层次结构中。在远程视图加载期间,给消息撰写视图控制器的设置将传递给远程视图控制器。但是,这是一个单向操作,并且在加载远程视图后不会更新(或读取)属性。

这是为了保护用户的隐私。这是iOS的基本设计。您应该接受这一点,并相应地设计您的应用程序。