繁体   English   中英

可可NSStatusBar全局热键

[英]Cocoa NSStatusBar Global HotKey

我创建了一个位于系统状态栏中的NSStatusBar可可应用程序。

我想分配一个热键,以便在按下它时切换我的应用程序并显示菜单。

这可能吗?,在我的搜索和实验中,我发现了分配全局热键的几种不同方式,当您的应用程序在后台运行时可以按此快捷键,但是我找不到任何方式使菜单显示成问题。

这可能吗?,如果有人认为分配全局热键的方法最好,请发布它。

谢谢。


我发现的热键教程之一是http://dbachrach.com/blog/2005/11/program-global-hotkeys-in-cocoa-easily/中的任何感兴趣的人。

如果您的目标是10.6以上版本,则可以使用一些新的NSEvent API来执行全局热键。 有关更多信息,请查看以下真棒博客文章: http : //cocoakids.net/global-hotkeys-in-cocoa-on-snow-leopard

编辑(很久以后)

有点像我自己的号角:我无法让PTHotKey和其他库之类的东西按我期望的方式工作,所以我最终放弃了并编写了自己的HotKey包装器。 它有一个非常简单的API(您为它提供了键代码,修饰符,目标和操作),甚至还支持10.6块之类的有趣功能。 您可以在此处下载源代码: http : //github.com/davedelong/DDHotKey

还有一个实际的热键API ,它仍然存在于Snow Leopard中,并且可用64位。 它是专为此目的设计的,与NSEvent方法不同,后者基本上只是CGEventTaps的基于块的包装。

所不同的是,NSEvent方法(或直接CGEventTaps)让你看看一个进来的事件,而当用户按下热键热键API仅调用你的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM