Как настроить MFMailComposeViewController так, чтобы я мог сделать поле «to» не редактируемым? - PullRequest
4 голосов
/ 19 февраля 2011

Я использую 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];

Заранее спасибо

Rajkanth

Ответы [ 3 ]

6 голосов
/ 19 февраля 2011

Все остальные ответы верны. Вы не можете изменить интерфейс MFMailComposeViewController. Но у вас есть другие возможности. ; -)

Three20 SDK включает также Mail Composer. Попробуйте это. Я думаю, что это должно быть настолько изменчиво, чтобы поле «to» больше не редактировалось.

Надеюсь, мой ответ полезен для вас.

Сандро Мейер

EDIT

Three20 SDK был прекращен некоторое время назад. Таким образом, вы не должны использовать его больше для новых проектов. Я советую вам использовать NimbusKit вместо этого. Это также рекомендуется командой Three20 SDK. К сожалению, он не включает MailComposeViewController

6 голосов
/ 19 февраля 2011

Нельзя настроить MFMailComposeViewController, чтобы избежать редактирования. Apple запрещает это, и причина довольно проста: именно пользователь, а не вы, должен решить, что именно отправлять, кому и т. Д. То же самое относится и к контроллеру пользовательского интерфейса, позволяющему отправлять SMS (текстовые) сообщения. И, конечно же, Apple не позволяет отправлять электронную почту или SMS без явного взаимодействия с пользователем. Именно пользователь должен подтвердить и отправить электронное письмо или SMS-сообщение. Процесс проверки включает возможность отмены сообщения или изменения любого отдельного свойства по желанию, включая получателей «to».

3 голосов
/ 19 февраля 2011

Из документации Apple :

Важно. Сам интерфейс почтовой композиции не настраивается и не должен изменяться вашим приложением. Кроме того, после представления интерфейса вашему приложению не разрешается вносить дальнейшие изменения в содержимое электронной почты. Пользователь по-прежнему может редактировать контент, используя интерфейс, но программные изменения игнорируются. Таким образом, вы должны установить значения полей содержимого перед представлением интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...