0

私のアプリでは、ユーザーがメールの「宛先リスト」を作成できるようにする必要があります。組み込みのメール コンポーザには、連絡先を選択できるという点で、まさに私が望むものがあります。入力内容から一致する可能性のある連絡先を表示するドロップ リストがあります。ただし、これは電子メールを送信するためのものではないため、CC、件名、および本文のコントロールは必要ありません。

どういうわけかコントロールで「To」フィールドだけを使用できますか? かなりのコードを書かないと、これを行う方法がわかりません。

メール コンポーザを起動してから、フォームの残りの部分を隠す別のビューをいつでも起動できると思いますが、To フィールドだけを利用したいと思います。

これは可能ですか?

4

1 に答える 1

1

多分これは他の誰かを助けるでしょう。多くの検索を行った後、To: フィールドのみを活用する方法が見つかりませんでした。アクションと動作をコピーするために、独自の一連のビュー コントローラーをコーディングすることになりました。次のクラスを作成しました。

  • 連絡先 (名、姓、電子メールの文字列プロパティ)
  • 連絡先 (さまざまな形式の連絡先オブジェクトの NSArray を作成するクラス メソッド)
  • ContactFormViewController (メール作成者の To: フィールドに類似)
  • ContactTableViewController (スクラバーを持つすべての連絡先のリストを表示します)

Contacts クラス内で、ABAddressBookRequestAccessWithCompletion を使用して、Contact* オブジェクトの NSArray を作成し、作成した配列を並べ替えます。

次に、メール コンポーザーと同じように、2 つのビュー コントローラーを用意します。

最初のビュー コントローラーには、メール アドレスまたは名前を入力するための UITextField、入力文字列に一致する連絡先を表示するための UITableView、および連絡先がテーブルで選択されるたびに UIButtons を追加する UIScrollView があります。UITextView の各 editChanged イベントは、データソースを UITableView に作成/更新します。さらに 2 つの UIButtons もあります。1 つは手動で入力した電子メール アドレスを選択した連絡先のリストに追加するためのもの (このボタンは、テキスト入力が emiail 正規表現と一致する場合にのみ表示されます) であり、もう 1 つは、ユーザーが連絡先を入力するよりも参照する場合に UITableViewController を表示するためのものです。結果を選択します。

于 2012-12-07T18:24:08.900 に答える