Можно ли вообще настроить MFMailComposeViewController? - PullRequest
1 голос
/ 29 августа 2009

Я хочу использовать MFMailComposeViewController в моем приложении, как в примере приложения Apple MailComposer, но ...

Я не хочу, чтобы пользователь мог редактировать поле «Кому:», фактически я вообще не хочу его отображать. Я не хочу отображать или заставлять пользователя редактировать поля CC или BCC или даже поле Subject. Я не хочу, чтобы кнопка «+» позволяла пользователю открывать свою страницу контактов для добавления получателей.

То, что я действительно хочу, - это иметь возможность заполнять свойства средства выбора (Subject, toRecipients, AttachmentData) программно, а программно вызывать кнопку "Отправить", чтобы электронное письмо получало отправлено даже без показа пользовательского интерфейса.

Есть ли способ сделать это? MFMailComposeViewController - единственный известный мне способ отправки электронной почты с вложенными изображениями. Если MFMailComposeViewController не может быть использован таким образом, кто-нибудь знает, как отправлять электронную почту с вложениями другим способом?

И, наконец, если я застрял с помощью MFMailComposeViewController, как вы отключаете клавиатуру, не нажимая кнопку Отправить или Отмена?!

Спасибо за любую помощь. / Стив

Ответы [ 2 ]

0 голосов
/ 11 марта 2010

Только не звоните presentModalViewController:animated после того, как позвоните alloc init. Затем вам нужно будет получить экземпляр кнопки на панели навигации и вызвать метод ее нажатия, имитируя событие касания.

Я почти уверен, что Apple отклонит это приложение.

MFMailComposeViewController *mvc = [[MFMailComposeViewController alloc] init];


.. code to populate the fields.

// DON'T CALL
// [self presentModalViewController:mvc animated:YES];

// CODE TO SIMULATE THE TOUCH EVENT (Google For Examples)

[mvc release];
0 голосов
/ 12 октября 2009

Стив (запоздало): сейчас нет способа настроить контроллер так, как вы хотите. Философия, по-видимому, заключается в том, что пользователь всегда должен окончательно сказать, как выглядит исходящая почта, поэтому пользователь всегда может отредактировать все эти поля после того, как вы предварительно заполните их.

Я не думаю, что есть какой-либо другой способ отправки электронной почты непосредственно с iPhone, без наличия серверного компонента в вашем приложении, на который вы можете передавать данные для спулинга исходящей почты. То же самое применимо и к философии почты: если SDK позволяет вам просто ставить в очередь исходящую почту, не контролируя ее пользователем, приложение может быть тайно спамом, но пользователь не знает об этом.

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