【问题标题】:Listening for keyboard presses in OS X在 OS X 中监听键盘按下
【发布时间】:2012-08-05 05:04:03
【问题描述】:

我正在尝试为 OS X 编写一个简单的启动器应用程序。这意味着编写一个可以侦听被按下的键的后台进程。这是如何在 OS X 中完成的?我可以在某处安装监听器,还是可以轮询键盘的当前状态?

【问题讨论】:

    标签: macos events keyboard


    【解决方案1】:

    如果您想为您的应用创建全局键盘快捷键,请使用 HotKey API。 (虽然 HotKey API 是旧的 Carbon/CoreServices API,但它可用于 64 位 Cocoa 应用程序,并且在 10.8 Mountain Lion 中仍然得到完全支持且未弃用。)

    DDHotKey 是 Carbon HotKey API 的一个不错的 Cocoa 包装器。

    要收听所有应用程序的所有击键,请使用+[NSEvent addGlobalMonitorForEventsMatchingMask:handler:];但是,这不是实现启动器应用的正确方法。

    【讨论】:

    • HotKey API 听起来完全符合我的需求,但我在 developer.apple.com 上找不到任何文档。我想我会使用 LaunchServices 然后根据触发的热键打开东西?
    • 使用DDHotKey,使用非常简单。 keycode 和 modifierFlags 参数来自按键事件触发的 NSEvent。您可以通过覆盖 NSTextField 的 -performKeyEquivalent: 来获取这些事件。另请参阅 Events.h,它定义了大多数关键代码。您可以使用 [NSWorkspace openFile:] 和 [NSWorkspace openURL:] 来简单地启动应用程序、文档或 URL。无需使用 LaunchServices。
    • 它需要是一个 Cocoa 应用程序。其 Info.plist 文件中的一个属性决定了该应用是在 Dock 中可见还是在隐藏的后台应用中可见。
    猜你喜欢
    • 2019-09-07
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2021-02-11
    相关资源
    最近更新 更多