Вопрос

У меня есть приложение, которое нужно прочитать в группе данных из внешнего файла и отобразить его как NSPopUpButton В пользовательском интерфейсе какао. Здесь улов в том, что данные, которые читаются в нуждающихся, иметь флаг, который утверждает, считается ли он «скрытым» или нет.

Если данные скрыты, их необходимо добавить в NSPopUpButton как NSMenuItem, но hidden Флаг должен быть установлен на YES так что это обычно не появляется в NSPopUpButton меню. Если пользователь удерживает «волшебный ключ» на своей клавиатуре (обычно ALT, в данном случае), то эти скрытые объекты должны быть невыполнены. Если пользователь отпускает ключ ALT, то он должен быть автоматически переоценен, за исключением того, что могло быть выбрано, что будет скрыто, если другой NSMenuItem были выбраны.

У меня как бы чертовски некоторое время, выясняя это, на самом деле.

Мне было интересно, есть ли прямой способ сделать это с помощью NSArrayController и NSPopUpButton, но до сих пор я не смог найти что -либо, напоминающее решение, не когда дело доходит до управления скрытым свойством NSMenuItem объекты.

Кто -нибудь знает, как это можно достичь, используя какао -привязки?

Это было полезно?

Решение

Вы можете подключить всплывающее окно на контроллер массива и изменить предикат фильтра. С точки зрения дизайна MVC вы не будете использовать атрибут, подобный «скрытую», который является характерным представлением, но, возможно, «продвинутым». Обычно установите предикат фильтра на контроллере массива на «ardanced = no». Затем, когда пользователь удерживает ваш предпочтительный модификатор, удалите предикат. Всплывающее окно будет обновляться автоматически. Контроллер массива должен быть связан с свойством массива на другом объекте (в вашей модели данных). Всплывающее окно должно быть связано с установками на контроллере массива.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top