在OS X中监听键盘按键

5

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

1个回答

6
如果您想为您的应用程序创建全局键盘快捷方式,请使用HotKey API。 (尽管HotKey API是旧的Carbon / CoreServices API,但它适用于64位Cocoa应用程序,并且在10.8 Mountain Lion中仍然得到完全支持和不被弃用。) DDHotKey是一个很好的Carbon HotKey API的Cocoa包装器。
要监听来自所有应用程序的所有按键,请使用+[NSEvent addGlobalMonitorForEventsMatchingMask:handler:]; 但是,这不是实现启动器应用程序的正确方法。

热键API听起来正是我需要的,但我在developer.apple.com上找不到任何文档。我猜我会使用LaunchServices来打开基于触发热键的内容? Translated text: 热键API听起来正是我需要的,但我在developer.apple.com上找不到任何文档。我猜我会使用LaunchServices来打开基于触发热键的内容? - Zarkonnen
1
使用DDHotKey非常简单。 keycode和modifierFlags参数来自于由按键事件触发的NSEvent。您可以通过覆盖NSTextField的-performKeyEquivalent:方法来获取这些事件。另请参阅Events.h,其中定义了大多数键代码。您可以使用[NSWorkspace openFile:]和[NSWorkspace openURL:]来启动应用程序、文档或URL,无需使用LaunchServices。 - Darren
1
它需要是一个Cocoa应用程序。其Info.plist文件中的一个属性决定了该应用程序是否可见于Dock或隐藏的后台应用程序。 - Darren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接