Реализация к - отношения Используя всплывающие меню

Можно реализовать доступное для редактирования к - одно отношение с помощью NSPopUpButtonCell или NSPopUpButton. Т.е. позвольте пользователю выбирать пункт меню из всплывающего меню для изменения целевого объекта к - одно отношение в модели.

Эта статья расширяет пример, представленный в Создании Интерфейса Основной Подробности путем добавления всплывающего меню к табличному представлению в основном интерфейсе. Вместо того, чтобы вывести на экран фамилию автора в столбце Author, Вы могли бы позволить пользователям выбирать автора из всплывающего меню, как показано на рисунке 1. Обратите внимание на то, что при отображении просто фамилии Вы по существу сгладились к - одно отношение. Следовательно, если пользователь вводит текст в доступной для редактирования ячейке текста столбца Автора, пользователь изменяет значение свойства фамилии, принадлежащего объекту Лица, не месту назначения к - одно отношение, принадлежащее Мультимедийному объекту. Используя всплывающие меню один способ реализовать доступное для редактирования к - одно отношение.

Посмотрите Создание Интерфейса Основной Подробности для шагов для создания интерфейса основной подробности.

Рисунок 1  Используя всплывающие меню для представления - отношения

Создание моделей и контроллеров

Чтобы сделать это, Вам сначала нужны модель поддержки и объекты контроллера. Принятие Вас уже имеет основной интерфейс, Вы создаете массив моделей, которые будут выведены на экран во всплывающем меню, и Вы создаете контроллер массива для управления им.

То, как Вы инициализируете набор объектов вывести на экран в раскрывающемся, зависит от Вашего приложения. Этот пример предполагает, что набор уже существует и является свойством Владельца Файла (например, вызванное свойство authors содержа объекты Лица).

Создайте NSArrayController путем перетаскивания его от палитры Cocoa-Controllers до файла пера и переименуйте его соответственно (например, AuthorsController). Распространено иметь многократные объекты контроллера на файл пера, настолько переименовывающий их, помогает идентифицировать их. Теперь, свяжите модель с контроллером следующим образом. Выберите контроллер массива, выведите на экран область Bindings в окне Info, покажите contentArray привязка, и конфигурирует его следующим образом:

  1. Установите Bind to аспект к объекту, поддерживающему набор объектов модели (например, Владелец Файла).

  2. Уезжайте Controller Key пробел.

  3. Установите Model Key Path к имени массива (например, authors).

Также введите надлежащее имя класса в Поле имени Класса объекта на области Attributes (например, введите имя класса Лица).

Создание представлений

Затем, Вы создаете раскрывающиеся представления путем перетаскивания NSPopUpButton к окну или NSPopUpButtonCell к столбцу, который выведет на экран к - одно отношение.

Привязка представлений к контроллерам

Основная привязка NSPopUpMenu и NSTableColumn (содержащий NSPopUpButtonCell), что Вы будете использовать для установки доступного для редактирования к - одно отношение:

Например, если Вы хотите вывести на экран всплывающее меню в столбце, сконфигурируйте content привязка для указания содержания всплывающего меню следующим образом:

  1. Установите Bind to аспект к AuthorsController.

  2. Установите Controller Key аспект к arrangedObjects .

  3. Уезжайте Model Key Path пробел аспекта.

Тогда сконфигурируйте contentValues привязка для указания, что должно быть выведено на экран в пунктах меню следующим образом:

  1. Установите Bind to аспект к AuthorsController.

  2. Установите Controller Key аспект к arrangedObjects.

  3. Установите Model Key Path аспект к lastName.

Наконец, сконфигурируйте selectedObject при привязке для указания фактического к - одно отношение это всплывающее меню изменяется следующим образом:

  1. Установите Bind to аспект к MediaAssetsController.

  2. Установите Controller Key аспект к arrangedObjects.

  3. Установите Model Key Path аспект к author (к - одно отношение).

Теперь при запуске приложения всплывающее меню появляется в каждой из ячеек столбца таблицы, выводя на экран текущую стоимость к - одно отношение. Когда пользователь выбирает другой элемент из меню, контроллер изменяет целевой объект этого к - одно отношение.

Выполните те же шаги выше для конфигурирования NSPopUpButton как доступного для редактирования к - одно отношение. Если Вы реализуете интерфейс основной подробности, и эта кнопка всплывающего меню кажется в подробном интерфейсе, то установленной Controller Key для selectedObject привязка с selection, т.е. к в настоящее время выбранному объекту.