2012-11-30 3 views
2

У меня есть NSMenu в Interface Builder, который подключен к розетке NSTableViewmenu.NSMenuItem Key Equivalent не работает, когда меню скрыто

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

Есть ли способ разрешить ключевой эквивалент работать, когда меню не видно?

+0

Можете ли вы поместить элементы в строку меню приложения? – paulmelnikow

+0

Я бы предпочел не, так как для этих элементов более интуитивно понятно, что эти элементы находятся в контекстном меню. – colincameron

ответ

3

Вы можете поместить элементы меню как в меню, так и в контекстное меню приложения. Тогда эквивалент ключа будет работать даже без видимого контекстного меню.

+0

Хорошая идея - мышление вне коробки. Если не использовать исправление, я думаю, что это обходное решение будет работать. Спасибо – colincameron

+0

Это не лучшие решения, в моем случае у меня много окон, я могу запустить событие элемента меню в окне A, но не могу в окне B – AMTourky

+0

Это хороший способ определения пользовательского интерфейса для действий в одном месте, затем убедитесь, что ваша цепочка ответчиков все правильно справляется. – Giles

1

Похоже, что macOS 10.13 SDK (High Sierra) имеет новое свойство allowsKeyEquivalentWhenHidden на NSMenuItem.

+0

'allowKeyEquivalentWhenHidden' не работает для меня. Кажется, это не имеет никакого эффекта. – ixany

+0

«Скрытый» не означает, что все меню в настоящее время не отображается на экране, «hidden» - это именованное состояние NSMenuItem. – Giles