Скрыть/показать пункт меню в главном меню приложения, нажав клавишу Option

Хочу добавить в главное меню приложения пункт меню, который будет использоваться достаточно редко. Я хочу, чтобы он был скрыт по умолчанию и показывался только тогда, когда пользователь удерживал клавишу Option. Как мне это сделать?

Кажется, что я должен обрабатывать flagsChanged:, но это метод NSResponderи NSMenuне наследуется от NSResponder? Я попробовал это внутри контроллера главного окна, и он работает, когда я нажимаю клавишу Option, прежде чем щелкнуть меню. Не работает следующий вариант использования: щелкнуть пункт меню (пункта нет), нажать клавишу выбора — должен появиться мой пункт, отпустить клавишу выбора — элемент должен исчезнуть.

Я также пробовал NSEvent addLocalMonitorForEventsMatchingMask:handler:и addGlobalMonitorForEventsMatchingMask:handler:для NSFlagsChangedMask, но когда клавиша option нажата, когда главное меню открыто, ни локальный или глобальные обработчики не запускаются.

Как мне это сделать?

9
задан Matt Stevens 16 March 2013 в 20:03
поделиться