メッセージの作成に使用するウィンドウは、MailDocumentEditorで、これはDocumentEditorから継承されています。 DocumentEditorには、HeadersEditorオブジェクトである_headersEditorというインスタンス変数があります。
HeadersEditorには、toto、cc、bccフィールドのインスタンス変数があり、それぞれ_toField、_ccField、_bccFieldという名前が付けられています。これらはAddressTextFieldのインスタンスです。
AddressTextFieldに入力されたアドレスを取得する方法があります。あなたがメールに精通しているなら、ここにはいくつかの異なる方法でアドレスが表示されます。いくつかはプレーンテキストアドレスだけで、いくつかはアドレス帳エントリ用のトークンです(名前を持つトークンとして表示されるため、右クリックして電子メールアドレスを取得できます)。 NSMutableArray * s _stringsWithNoRecordsおよび_stringsAwaitingRecordsのアクセサ、およびNSMutableDictionary * _recordsForStringsを作成できます。
ただし、これらのフィールドのアドレスを設定するには、これらのフィールドに必要な電子メールアドレスをinitTextCell:(NSString *)を使用してNSCellを作成します。次に、AddressTextFieldでsetCell:メソッドを呼び出します。これにより、そのフィールドの内容がNSCellのNSStringに置き換えられます。
注:先に入力したアドレスを取得することについては早すぎると言いました。 _stringsWithNoRecordsを取得すると、プレーンテキストの電子メールアドレスが取得されます(最初にドラフトを保存するコマンド+ sを実行したと仮定して)が、重複することがあります。トークン化された電子メールアドレス(すなわち、それが認識するもの)も取得しません。さらに、_stringsAwaitingRecordsと_recordsForStringsのどちらも、私には(少なくともLionでは)どんなコンテンツも与えてくれません。私はこれについてもっと知っているときに答えを更新します。ただし、誰に送信しているのかわかっている場合は、setCell:を使用してAddressTextFieldの内容を設定できます。 – Aaron
更新:私は文字列として受信者のアドレスを取得する方法を考え出しました! toRecipients、ccRecipients、およびbccRecipientsのメソッドを持つMessageEditorでbackEndメソッドを呼び出してください。これらはMessageAddresseeオブジェクトのNSArraysであり、そのアドレスメソッドはNSStringアドレスを与えます。 – Aaron