アップルは次のように述べています。
NSController オブジェクトの属性。NSController オブジェクトにバインドする場合、このフィールドを使用してキー パスの最初のエントリを選択します。このフィールドに関連付けられたメニューには、便宜上、選択したコントローラー オブジェクトで使用可能なプロパティが表示されます。プロパティの名前を入力するか、表示されたリストから選択することができます。
誰かがそれを別の言葉で説明できますか?
アップルは次のように述べています。
NSController オブジェクトの属性。NSController オブジェクトにバインドする場合、このフィールドを使用してキー パスの最初のエントリを選択します。このフィールドに関連付けられたメニューには、便宜上、選択したコントローラー オブジェクトで使用可能なプロパティが表示されます。プロパティの名前を入力するか、表示されたリストから選択することができます。
誰かがそれを別の言葉で説明できますか?
ビューオブジェクトをモデルプロパティにバインドしています。(概略的に)次のようなもの:
myTextField.value <=> myModel.textValue.
上記のように、ビュープロパティをモデルオブジェクトのプロパティに直接バインドすることはできますが、実際にはバインドしないでください。NSObjectController
Appleのコントローラーが提供する優れた機能(たとえば、NSArrayController
など)を見逃してしまうでしょう。代わりに、次のように、モデルにバインドされているコントローラーにビューをバインドする必要があります。
myTextField.value <=> myObjectController.selection.textValue
and
myObjectController.contentObject <=> myModel
この設定では、myObjectController.selectionはmyObjectController.contentObjectのKey-Valueバインディング互換プロキシであり、myObjectControllerはビューとモデルの間のメディエーターとして機能できます。NSArrayController
Interface Builderは、コントローラーがバインドされたモデル( 'sarrangedObjects
や)の複数のプロキシーを公開する可能性があるため、この関心の分離を明確にしますselectedObjects
。上記の例でmyTextField.valueをバインドする場合、「ControllerKey」フィールドに「selection」と入力し、「ModelObjectKeypath」パスフィールドに「textValue」と入力します。