Какао validateUserInterfaceItem и скрытие пункта меню - PullRequest
1 голос
/ 10 ноября 2010

Используя validateUserInterfaceItem, можно отключить / включить пункт меню, но мне нужно подобное поведение, чтобы скрыть пункты меню, у вас есть какие-нибудь подсказки?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2010

- (BOOL) validateMenuItem: (NSMenuItem *) menuItem

Некоторые подробности в документах .

Обновление:
NSMenus не скрывают NSMenuItems, если validateMenuItem: возвращает NO. Соответствующий NSMenuItem отключается (который сообщает пользователю, что функциональность есть, но в настоящее время не применима).
Такое поведение также предлагается в Apple HIG . (См. Второй абзац в разделе «Элементы меню« Именование »)

Два других замечания о состоянии enabled NSMenuItem:

  • setEnabled работает, только если autoenablesItems: хоста NSMenu установлен на YES
  • Реализация по умолчанию validateMenuItem:, кажется, пересекает цепочку респондента, чтобы проверить, доступна ли цель / действие NSMenuItem.
0 голосов
/ 10 ноября 2010

Вы можете использовать - (BOOL) validateMenuItem: для удаления пункта меню, когда он был ненужен, и вставки его при необходимости.

См. Документация меню

...