Эквивалент ключа какао в меню не работает - PullRequest
2 голосов
/ 26 апреля 2011

Я создал NSStatusItem и назначил два ключевых эквивалента в конструкторе интерфейса (Xcode 4.0). Это для меню настроек cmd- и опции выхода cmd-q. Оба из них будут работать, когда Меню выделено / открыто, но не будут работать иначе, даже если приложение является основным. Любые идеи о том, почему это происходит или как я могу это изменить?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Операционная система передает ключевые события, которые она не обрабатывает, переднему приложению, которое сравнивает их с любыми ключевыми эквивалентами в своем главном меню и текущем окне.Они не сравниваются с элементами в строке состояния, и поскольку строка состояния на самом деле является другим приложением, не имеет значения, что ваше приложение находится на переднем плане.Когда у вас есть открытое меню, это окно в фокусе.Вот почему он работает в этих условиях.

Поскольку элемент состояния активен только при открытом меню, вам необходимо получить эквиваленты ключа одним из двух других методов.Первый, более новый метод - использовать события .Я никогда не использовал это, поэтому я не могу посоветовать, как его настроить.Другой, более старый вариант - использовать горячие клавиши.Этот метод может стать неподдерживаемым в будущем, но если вам интересно, я разместил пример в этом ответе .

0 голосов
/ 26 апреля 2011

Мое предположение: ваш NSMenu не входит в цепочку респондента.Если вы можете выяснить, как это сделать, вы, вероятно, можете заставить это работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...