键盘快捷键在 macOS 的菜单栏应用程序中不起作用

Keyboard shortcuts not working in Menubar Application for macOS

我创建了一个仅在菜单栏中运行的 macOS 应用程序。

在 Xcode 中,我在检查器中使用 等效键 属性 为某些 NSMenuItem 添加了快捷方式。

在本例中是 Shift+F4 和 Shift+F5

快捷方式确实有效,但仅在打开菜单时有效。我想这是因为,应用程序在其余时间都在后台运行。

即使菜单未打开,我怎样才能使快捷方式起作用?

隐藏时允许复选框将不起作用。我假设它指的是项目本身,可以标记为 hidden.

任何想法和建议将不胜感激。

您似乎在使用 NSStatusItem。

操作系统将它不处理的按键事件传递给前端应用程序,该应用程序将它们与主菜单和当前 window 中的任何等效按键进行比较。它们不会与状态栏中的项目进行比较,并且由于状态栏实际上是一个不同的应用程序,因此您的应用程序位于前台并不重要。打开菜单后,window 成为焦点。这就是它在那种情况下起作用的原因。

我是从另一个 post 那里回答这个问题的。详情请参考 post。