Mac托盘应用程序的全局键盘快捷键

fou*_*deg 9 macos swift

我正在使用Swift 4开发一个Mac应用程序,它只作为代理程序运行(它只在托盘中有一个菜单).我对Swift完全不熟悉.

我希望它能够响应键盘快捷键,但基本快捷键(参见图片)仅在应用程序具有焦点时才会起作用(在我的情况下,单击菜单时).

截图

所以我需要的是我的应用程序响应系统范围的键盘快捷键.

我试过了:

  • HotKey但它似乎与Swift 4不兼容,或者我可能无法使用Swift Package Manager
  • 这个答案但是Swift 4再次引发了一些我无法解决的错误

有人做过吗?

fou*_*deg 5

因此,我最终将其与HotKey一起使用:

  • 通过使用迦太基作为软件包管理器而不是SPM
  • 并没有使用自述文件中的HotKey的示例代码,由于某种原因,该代码对我不起作用,而是示例应用程序中的那个。

效果很好!


Sin*_*hus 5

我制作了一个Swift 包,使这变得非常简单:

\n
import KeyboardShortcuts\n\nextension KeyboardShortcuts.Name {\n    static let startFiveRounds = Self("startFiveRounds", default: .init(.t, modifiers: [.command, .option]))\n}\n\n@main\nfinal class AppDelegate: NSObject, NSApplicationDelegate {\n    func applicationDidFinishLaunching(_ notification: Notification) {\n        KeyboardShortcuts.onKeyUp(for: .startFiveRounds) {\n            // \xe2\x80\xa6\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

尽管您已经解决了您的问题,但我认为这对于其他遇到相同问题的人可能很有用。

\n

我还建议让用户选择自己的键盘快捷键,而不是对其进行硬编码。我的包附带一个控件,用户可以在其中设置他们喜欢的快捷方式。

\n