5

我正在尝试创建一个在执行时不打开窗口的实用程序,并且可以通过热键激活该实用程序;我读到目前 Cocoa 没有这个功能,我应该使用已弃用的 Carbon 功能。

难道真的没有办法在 Cocoa 中使用全局热键吗?我应该怎么做:等待 Cocoa 引入一个函数,或者使用 carbon 函数,直到 Cocoa 中没有引入类似的函数?

4

2 回答 2

8

使用Carbon Event Manager 的RegisterEventHotKey功能此功能在 64 位中受支持(请注意,它缺少“在 64 位中不可用”可用性说明)。

相反,NSEventaddGlobalMonitorForEventsMatchingMask:handler:在 Snow Leopard 中的新方法并不是实现热键的最简单方法。一方面,它要求用户可以访问已打开的辅助设备;此外,它需要您自己检查每个事件,与RegisterEventHotKey系统相比,系统仅在用户按下您注册的特定键时调用您的回调函数。

于 2009-12-16T15:55:37.110 回答
2

看看 Shortcut Recorder ( http://wafflesoftware.net/shortcut/ ) 一个框架,它使用 Carbon Event Manager for Global Hotkeys 它还允许您更改用户以更改 HotKey(如果这是您想要的)。

并查看如何实现它的这个项目/代码:http: //github.com/sdegutis/SDGlobalShortcuts

于 2009-12-16T16:32:54.273 回答