4

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

但是他/她不应该删除反馈地址(这里是“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];

提前致谢

拉杰坎特

4

3 回答 3

6

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

于 2011-02-19T07:52:07.977 回答
6

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

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

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

桑德罗·迈耶

编辑

Three20 SDK was discontinued a while ago. So you shouldn't use it anymore for new projects. I advise you to use NimbusKit instead. This is also recommended by the Three20 SDK team. Sadly it does not include a MailComposeViewController

于 2011-02-19T08:24:13.083 回答
3

苹果文档

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

于 2011-02-19T08:09:12.677 回答