7

それらのすべてのフィールドとその意味を説明しているドキュメントは見つかりません。特に「コントローラーキー」は私にはわかりません。

4

4 に答える 4

5

[別の質問に私の回答をコピーしています...]

コントローラー キーは、バインド先の (コントローラー オブジェクトのプロパティ) のキーです。モデル キー パスは、バインドされたオブジェクトがモデル オブジェクトに、文字列や画像などのより基本的なオブジェクト、または他のモデル オブジェクト (つまり、モデルへのドリル ダウン) を要求できるキー パスです。

例: 配列コントローラーに Person オブジェクトがあり、各 Person にname. arrangedObjectsテーブルの列を配列コントローラ、コントローラ キー(それによってモデル オブジェクトを取得)、モデル キー パスname(それによって値オブジェクトを取得) にバインドします。

より複雑な例: Departments の配列コントローラーがあるとします。各部門には人 (部門の従業員) が含まれます。People 配列コントローラーを Departments コントローラー、コントローラー キーarrangedObjects(Department モデル オブジェクトを取得)、モデル キー パス@distinctUnionOfObjects.employees(Person モデル オブジェクトを取得) にバインドしてから、テーブル列を People コントローラー、コントローラー キーarrangedObjects、モデル キー パスにバインドできます。 name.

そのテーブルは、あなたの会社で働く人々のためのものです。将来の従業員の別のテーブルがある場合は、それらの Person オブジェクトも作成できますが、それらは部門に属していないため、既存の従業員のテーブルには表示されません。それらを採用すると、1 つまたは複数の部門に追加されます。employees次に、配列コントローラーがすべての部門を監視しているため、People 配列コントローラーに自動的に表示されます。

于 2010-03-14T04:04:05.387 に答える
4

コントローラー キー ポップアップ メニューは、コントローラー (通常は NSArrayController、NSObjectController、または NSTreeController) が提示するキーを見つけるのに役立ちます。

最良の例は、selection選択されたオブジェクトのセットを含む NSArrayControllers のキーです。紛らわしいのは、NSObjectController も「選択」キーを提示することですが、コントローラーは単一のオブジェクトしか制御できません (したがって、選択 = オブジェクト)。

まったく明確でないことに同意します。オブジェクトをプログラムでバインドしたとき(つまり、bind:toObject:withKeyPath:options:メソッドを使用して)、個人的にそれを理解し始めました。

于 2009-03-04T08:10:56.377 に答える
1

これは、キーと値のコーディングに関係しています。IB のコントロールをコントローラーの値にバインドできます。その値を接続するには、キーパスを指定する必要があります。たとえば、IB に textfield があり、それをバインドしてコントローラーの「name」というフィールドを指定したい場合は、「name」をキーパスとして指定します。次に、キーと値のコーディングを介してアクセスできるように、コントローラーの名前フィールドを設定する必要があります。これは、@property および @synthesize 指定子を使用して 10.5 で行われます。

于 2009-02-27T17:49:46.760 に答える
0

次のトピックをご覧ください: Cocoa Key Value Bindings: Controller Key のさまざまなオプションの説明は何ですか?

そこにすべてのコントローラーキーの定義を見つける場所の説明を投稿しました。

于 2010-03-13T23:37:11.163 に答える