Реализация к - отношения Используя всплывающие меню
Можно реализовать доступное для редактирования к - одно отношение с помощью NSPopUpButtonCell или NSPopUpButton. Т.е. позвольте пользователю выбирать пункт меню из всплывающего меню для изменения целевого объекта к - одно отношение в модели.
Эта статья расширяет пример, представленный в Создании Интерфейса Основной Подробности путем добавления всплывающего меню к табличному представлению в основном интерфейсе. Вместо того, чтобы вывести на экран фамилию автора в столбце Author, Вы могли бы позволить пользователям выбирать автора из всплывающего меню, как показано на рисунке 1. Обратите внимание на то, что при отображении просто фамилии Вы по существу сгладились к - одно отношение. Следовательно, если пользователь вводит текст в доступной для редактирования ячейке текста столбца Автора, пользователь изменяет значение свойства фамилии, принадлежащего объекту Лица, не месту назначения к - одно отношение, принадлежащее Мультимедийному объекту. Используя всплывающие меню один способ реализовать доступное для редактирования к - одно отношение.
Посмотрите Создание Интерфейса Основной Подробности для шагов для создания интерфейса основной подробности.
Создание моделей и контроллеров
Чтобы сделать это, Вам сначала нужны модель поддержки и объекты контроллера. Принятие Вас уже имеет основной интерфейс, Вы создаете массив моделей, которые будут выведены на экран во всплывающем меню, и Вы создаете контроллер массива для управления им.
То, как Вы инициализируете набор объектов вывести на экран в раскрывающемся, зависит от Вашего приложения. Этот пример предполагает, что набор уже существует и является свойством Владельца Файла (например, вызванное свойство authors
содержа объекты Лица).
Создайте NSArrayController путем перетаскивания его от палитры Cocoa-Controllers до файла пера и переименуйте его соответственно (например, AuthorsController
). Распространено иметь многократные объекты контроллера на файл пера, настолько переименовывающий их, помогает идентифицировать их. Теперь, свяжите модель с контроллером следующим образом. Выберите контроллер массива, выведите на экран область Bindings в окне Info, покажите contentArray
привязка, и конфигурирует его следующим образом:
Установите
Bind to
аспект к объекту, поддерживающему набор объектов модели (например, Владелец Файла).Уезжайте
Controller Key
пробел.Установите
Model Key Path
к имени массива (например,authors
).
Также введите надлежащее имя класса в Поле имени Класса объекта на области Attributes (например, введите имя класса Лица).
Создание представлений
Затем, Вы создаете раскрывающиеся представления путем перетаскивания NSPopUpButton к окну или NSPopUpButtonCell к столбцу, который выведет на экран к - одно отношение.
Привязка представлений к контроллерам
Основная привязка NSPopUpMenu и NSTableColumn (содержащий NSPopUpButtonCell), что Вы будете использовать для установки доступного для редактирования к - одно отношение:
content
— набор объектов вывести на экран во всплывающем меню.contentValues
— свойство объектов вcontent
то, что Вы хотите вывести на экран во всплывающем меню.selectedObject
— к - одно отношение, которое пользователи изменяют при выборе элемента из всплывающего меню.
Например, если Вы хотите вывести на экран всплывающее меню в столбце, сконфигурируйте content
привязка для указания содержания всплывающего меню следующим образом:
Установите
Bind to
аспект кAuthorsController
.Установите
Controller Key
аспект кarrangedObjects
.Уезжайте
Model Key Path
пробел аспекта.
Тогда сконфигурируйте contentValues
привязка для указания, что должно быть выведено на экран в пунктах меню следующим образом:
Установите
Bind to
аспект кAuthorsController
.Установите
Controller Key
аспект кarrangedObjects
.Установите
Model Key Path
аспект кlastName
.
Наконец, сконфигурируйте selectedObject
при привязке для указания фактического к - одно отношение это всплывающее меню изменяется следующим образом:
Установите
Bind to
аспект кMediaAssetsController
.Установите
Controller Key
аспект кarrangedObjects
.Установите
Model Key Path
аспект кauthor
(к - одно отношение).
Теперь при запуске приложения всплывающее меню появляется в каждой из ячеек столбца таблицы, выводя на экран текущую стоимость к - одно отношение. Когда пользователь выбирает другой элемент из меню, контроллер изменяет целевой объект этого к - одно отношение.
Выполните те же шаги выше для конфигурирования NSPopUpButton как доступного для редактирования к - одно отношение. Если Вы реализуете интерфейс основной подробности, и эта кнопка всплывающего меню кажется в подробном интерфейсе, то установленной Controller Key
для selectedObject
привязка с selection
, т.е. к в настоящее время выбранному объекту.