Вы связываете объект представления со свойством модели. Что-то вроде (схематично):
myTextField.value <=> myModel.textValue.
В то время как вы можете привязать свойство представления непосредственно к свойству объекта модели, как показано выше, вы действительно не должны этого делать. Вы упустили бы хорошие функции, предоставляемые контроллерами Apple (например, NSObjectController
, NSArrayController
и т. Д.). Вместо этого вы должны привязать свой вид к контроллеру, который привязан к модели, например:
myTextField.value <=> myObjectController.selection.textValue
and
myObjectController.contentObject <=> myModel
В этой настройке myObjectController.selection является совместимым с привязкой Key-Value прокси-сервером для myObjectController.contentObject, а myObjectController может выступать в качестве посредника между представлением и моделью. Интерфейсный Разработчик делает это разделение проблем явным, потому что контроллеры могут предоставлять несколько прокси для своей связанной модели (например, NSArrayController
arrangedObjects
и selectedObjects
). При связывании myTextField.value в приведенном выше примере вы должны ввести «selection» в поле «Ключ контроллера» и «textValue» в поле пути «Model Object Keypath».