【问题标题】:How to customize MFMailComposeViewController so that i can make the "to" field as non-editable?如何自定义 MFMailComposeViewController 以便我可以将“to”字段设置为不可编辑?
【发布时间】:2011-02-19 06:27:43
【问题描述】:

我正在使用 MFMailComposeViewController 在我的应用程序中发送反馈。它工作正常。但这里的问题是,用户可以编辑/删除“收件人”地址。我想让它成为一个不可编辑的。可能是,用户可以在“to”字段中添加一些邮件地址。

但他/她不应该删除反馈地址(这里是“support@xxxx.com”)。

这是我的代码...

MFMailComposeViewController *composeWindow = [[MFMailComposeViewController alloc] init];
composeWindow.mailComposeDelegate = self;

NSString *str = @"Subject of the feedback";
[composeWindow setSubject:[str stringByAppendingString:[[UIDevice currentDevice]systemVersion]]];

NSArray *toRecipients = [NSArray arrayWithObject: @"support@xxxx.com"]; 
[composeWindow setToRecipients:toRecipients];

[self presentModalViewController:composeWindow animated:YES];
[composeWindow release];

提前致谢

拉杰坎特

【问题讨论】:

    标签: iphone email mfmailcomposeviewcontroller feedback


    【解决方案1】:

    您不能自定义MFMailComposeViewController 以避免编辑。 Apple 禁止这样做,原因很简单:用户而不是您必须准确决定发送什么、发送给谁等。这同样适用于允许发送 SMS(文本)消息的 UI 控制器。而且,当然,Apple 不允许在没有与用户明确交互的情况下发送电子邮件或 SMS。用户必须验证并发送电子邮件或 SMS 消息。验证过程包括取消消息或随意更改任何单个属性的能力,包括“收件人”收件人。

    【讨论】:

    • 感谢您的详细回复。我知道在提交我们的界面之前,我们应该设置值。用户可以根据需要修改/删除它们。但是请看,我只使用这个控制器来提交关于我的应用程序的反馈。我没有在我的应用程序中提供邮件服务!!!也许,他们想将反馈的副本发送给某人。但如果他们使用这个反馈选项,我应该收到邮件。我不知道为什么苹果会这样做!无论如何,非常感谢你......
    【解决方案2】:

    所有其他答案都是正确的。您不能更改 MFMailComposeViewController 的接口。但你还有其他可能性。 ;-)

    Three20 SDK 还包括一个邮件编辑器。试试看。我认为它应该是多变的,“to”字段不再可编辑。

    希望我的回答对你有帮助。

    桑德罗·迈耶

    编辑

    Three20 SDK 不久前已停产。所以你不应该再将它用于新项目。我建议您改用NimbusKit。这也是 Three20 SDK 团队推荐的。遗憾的是它不包含 MailComposeViewController

    【讨论】:

    • 非常感谢.. 我会试试的
    【解决方案3】:

    来自Apple documentation

    重要提示:邮件撰写界面本身不可自定义,并且不得由您的应用程序修改。此外,在呈现界面后,您的应用程序不允许对电子邮件内容进行进一步的更改。用户仍然可以使用界面编辑内容,但程序更改会被忽略。因此,您必须在呈现界面之前设置内容字段的值。

    【讨论】:

      猜你喜欢
      • 2014-10-18
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多