Я собрал часть головоломки. От Apple Developer docs:
контроллеры требуют контента, чтобы манипулировать и есть ряд опций для настройки этого контента. Это может быть сделано ... через привязки ...
...
NSObjectController и его подклассы инициализируются с помощью метода initWithContent :, передавая объект контента или ноль, если вы собираетесь использовать привязки контента. Вы можете явно установить содержимое существующего контроллера , используя метод setContent :. Это больше, чем , общий для обеспечения контента для контроллеров путем установления привязки к одному из их открытых привязок содержимого контроллера.
NSObjectController выставляет одно связывание для содержания называется contentObject. Вы можете установить привязку из contentObject к любому объекту , который соответствует кодированию ключа и соблюдению значения ключа для ключей, на которых вы собираетесь управлять контроллером.
из SO post:
для NSObjectController, выбор объекта контента.
Очевидно, что для выбора @property NSObjectController присваивается объект contentObject, который позволяет выполнять привязки.
Больше generally:
NSObjectController и его подклассы ... поддержка отслеживание в настоящее время выбранного объекта или объекты
Я думаю выбранный объект сусло означает элемент управления, который выбран в представлении.
Существует два метода, которые обычно используются для доступа к объектам , которые в настоящее время выбраны: выделение и выделенные объекты.
Я думаю, что с NSObjectController, выбранный контроль в представлении не имеет смысла, и поэтому выбор @property из NSObjectController присваивается contentObject.
Это одностороннее и полезное в подклассах, где вы можете сделать что-то вроде привязки «содержимого» NSObjectController к 'select' NSArrayController, который допускает только один выбор ... Я не думаю, что есть намного больше, чтобы скажем, поскольку, по-видимому, нет возможности установить выбор с помощью простого экземпляра NSObjectController. Насколько я знаю, это намеренно бесполезно в суперклассе. – stevesliva