Чтение и изменение полей to / cc / bcc программно в плагине Mail.app - PullRequest
2 голосов
/ 29 июля 2011

Кто-нибудь когда-нибудь успешно придумывал способ изменить поля to, cc и bcc исходящего сообщения в плагине Mail.app? Я просматривал заголовочные файлы, пытаясь выяснить, что именно мне нужно сделать, чтобы получить список получателей сообщения, и иметь возможность изменить их (в частности, удалить некоторых получателей и переключить оставшихся получателей на bcc'ed).

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

1 Ответ

1 голос
/ 03 августа 2011

Разобрался!

Окном, которое вы используете для составления сообщения, является MailDocumentEditor, который наследуется от DocumentEditor. DocumentEditor имеет переменную экземпляра с именем _headersEditor, которая является объектом HeadersEditor.

HeadersEditor имеет переменные экземпляра для полей to, cc и bcc, названные _toField, _ccField и _bccField, соответственно. Это экземпляры AddressTextField.

Существуют методы, позволяющие получить адреса, которые были введены в AddressTextField. Если вы знакомы с почтой, адреса могут отображаться здесь несколькими способами. Некоторые из них являются просто текстовыми адресами, некоторые являются токенами для записей в адресной книге (поэтому они отображаются в виде токенов с именем, которое можно щелкнуть правой кнопкой мыши, чтобы получить адрес электронной почты). Вы можете создавать методы доступа для NSMutableArray * s _stringsWithNoRecords и _stringsAwaitingRecords, а также NSMutableDictionary * _recordsForStrings.

Однако, чтобы установить адреса этих полей, создайте NSCell, используя initTextCell: (NSString *) с адресами электронной почты, которые вы хотите в этих полях. Затем вызовите метод setCell: для AddressTextField. Это заменит содержимое этого поля на вашу NSString в NSCell.

...