それらのすべてのフィールドとその意味を説明しているドキュメントは見つかりません。特に「コントローラーキー」は私にはわかりません。
4 に答える
[別の質問に私の回答をコピーしています...]
コントローラー キーは、バインド先の (コントローラー オブジェクトのプロパティ) のキーです。モデル キー パスは、バインドされたオブジェクトがモデル オブジェクトに、文字列や画像などのより基本的なオブジェクト、または他のモデル オブジェクト (つまり、モデルへのドリル ダウン) を要求できるキー パスです。
例: 配列コントローラーに Person オブジェクトがあり、各 Person にname
. arrangedObjects
テーブルの列を配列コントローラ、コントローラ キー(それによってモデル オブジェクトを取得)、モデル キー パスname
(それによって値オブジェクトを取得) にバインドします。
より複雑な例: Departments の配列コントローラーがあるとします。各部門には人 (部門の従業員) が含まれます。People 配列コントローラーを Departments コントローラー、コントローラー キーarrangedObjects
(Department モデル オブジェクトを取得)、モデル キー パス@distinctUnionOfObjects.employees
(Person モデル オブジェクトを取得) にバインドしてから、テーブル列を People コントローラー、コントローラー キーarrangedObjects
、モデル キー パスにバインドできます。 name
.
そのテーブルは、あなたの会社で働く人々のためのものです。将来の従業員の別のテーブルがある場合は、それらの Person オブジェクトも作成できますが、それらは部門に属していないため、既存の従業員のテーブルには表示されません。それらを採用すると、1 つまたは複数の部門に追加されます。employees
次に、配列コントローラーがすべての部門を監視しているため、People 配列コントローラーに自動的に表示されます。
コントローラー キー ポップアップ メニューは、コントローラー (通常は NSArrayController、NSObjectController、または NSTreeController) が提示するキーを見つけるのに役立ちます。
最良の例は、selection
選択されたオブジェクトのセットを含む NSArrayControllers のキーです。紛らわしいのは、NSObjectController も「選択」キーを提示することですが、コントローラーは単一のオブジェクトしか制御できません (したがって、選択 = オブジェクト)。
まったく明確でないことに同意します。オブジェクトをプログラムでバインドしたとき(つまり、bind:toObject:withKeyPath:options:
メソッドを使用して)、個人的にそれを理解し始めました。
これは、キーと値のコーディングに関係しています。IB のコントロールをコントローラーの値にバインドできます。その値を接続するには、キーパスを指定する必要があります。たとえば、IB に textfield があり、それをバインドしてコントローラーの「name」というフィールドを指定したい場合は、「name」をキーパスとして指定します。次に、キーと値のコーディングを介してアクセスできるように、コントローラーの名前フィールドを設定する必要があります。これは、@property および @synthesize 指定子を使用して 10.5 で行われます。
次のトピックをご覧ください: Cocoa Key Value Bindings: Controller Key のさまざまなオプションの説明は何ですか?
そこにすべてのコントローラーキーの定義を見つける場所の説明を投稿しました。