我已经创建了一个位于系统状态栏中的NSStatusBar可可应用程序。
我想分配一个热键,以便当按下它时,切换我的应用程序并显示菜单。
这有可能吗?在我的搜索和实验中,我发现了几种分配全局热键的不同方法,这些方法可以在应用程序处于后台时按下,但我找不到任何方法来解决菜单显示的问题。
这是可能的吗?,如果有人认为分配全局热键的方式最好,请张贴。
谢谢。
我发现的热键教程之一是为感兴趣的人提供的http://dbachrach.com/blog/2005/11/program-global-hotkeys-in-cocoa-easily/教程。
发布于 2009-11-01 19:47:07
还有一个实际的热键API,它仍然存在于雪豹中,可以在64位内使用.它是专门为此目的而设计的,与NSEvent方法不同,后者本质上只是围绕CGEventTaps的基于块的包装器。
不同之处在于,NSEvent方法(或直接CGEventTaps )会让您查看传入的每个事件,而热键API只在用户按热键时调用您的函数。
发布于 2009-11-01 19:28:29
如果您的目标是10.6+,则有一些新的NSEvent API可以执行全局热键操作。欲了解更多信息,请访问以下令人敬畏的博客文章:http://cocoakids.net/global-hotkeys-in-cocoa-on-snow-leopard
编辑(很久之后)
有点像我自己的号角:我永远无法让像PTHotKey和其他库这样的东西像我期望的那样工作,所以我最终放弃了,写了我自己的HotKey包装器。它有一个非常简单的API (您给它一个关键代码、修饰符、一个目标和一个动作),它甚至支持10.6块这样有趣的东西。您可以在这里下载源代码:http://github.com/davedelong/DDHotKey
https://stackoverflow.com/questions/1657659
复制相似问题