如何自定义MFMailComposeViewController以便我可以将“to”字段设置为不可编辑?

时间:2011-02-19 06:27:44

标签: iphone email mfmailcomposeviewcontroller feedback

我正在使用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];

先谢谢

Rajkanth

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:6)

所有其他答案都是正确的。您无法更改MFMailComposeViewController的界面。但你有其他可能性。 ; - )

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

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

Sandro Meier

修改

Three20 SDK暂时停止使用。因此,您不应再将它用于新项目。我建议你改用NimbusKit。这也是Three20 SDK团队推荐的。可悲的是,它不包含MailComposeViewController

答案 2 :(得分:3)

来自Apple documentation

  

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