Вопрос по cocoa – Как связать значение NSTextField с содержимым NSObjectController без ошибок?

4

У меня здесь довольно простая настройка, и XCode выделяет мне красный комментарий без комментариев! пометить в интерфейсе конструктора.

Начинается с базового шаблона документов на основе данных. Документ xib имеет экземпляр NSObjectController, контекст управляемого объекта которого связан с владельцем файла (мой подкласс NSPersistentDocument). Присутствует NSTextField, значение которого я хочу связать с NSObjectController ... и здесь возникает проблема.

Я печатаю & quot; название & quot; для "Путь к ключевой модели", quot; потому что это правильное свойство для моего NSManagedObject, которое должно появиться в текстовом поле. Когда я щелкаю в пустом поле «Ключ контроллера», автозаполнение причудливо предлагает поля, которые предназначены только дляNSArrayController:

screenshot of strange autocomplete candidates

Каждый раз, когда я пытаюсь набрать «контент» в качестве ключа контроллера (потому что это правильное свойство для NSObjectController), а затем нажмите клавишу «Tab» / «Return» и т. д. «content» ». смещен вниз к ключевому пути модели, вот так:

screenshot of error

Для чего этот красный восклицательный знак? Когда я покидаю «Ключ контроллера» пустой и & quot; Путь к ключу модели & quot; как content.title, приложение работает. Привязка правильная и отражает «заголовок» свойство моего NSManagedObject. Я абсолютно уверен, что «Контроллер объектов» является экземпляром NSObjectController.

Чтобы удостовериться, что здесь достаточно информации: NSObjectController находится в режиме Entity, для него задана сущность Core Core, у которой есть свойство String с именем & quot; title. & Quot; Khakionion

Ваш Ответ

1   ответ
7

NSObjectController, выбор является объектом контента.

Приведенная выше документация упоминает это поведение в одном предложении. Все еще кажется нелогичным, но, по крайней мере, это упоминается в одном месте во всей документации Apple. Khakionion
Так что ... это работает, но почему? Это нигде не задокументировано, что я могу найти, и это совершенно нелогично. Нет "выбора" потому что это всего лишь один объект, верно? Khakionion

Похожие вопросы