如何捕获在后台运行的Cocoa应用程序中的按键?

时间:2018-01-03 03:49:37

标签: cocoa quartz

我正在制作一个小实用程序,它将检测何时按下numlock键。

我目前能够通过Shadow Lab使用名为Spark的工具执行脚本来控制numlock: https://www.shadowlab.org/softwares/spark.php

所以,我知道这是可能的。

事实上,Quicksilver和其他许多应用程序都会这样做,所以它必须是可能的(尽管存在明显的安全问题)。

我怎样才能做到这一点?

通过Google搜索,我找到了使用NSEvent.addGlobalMonitorForEvents(matching: .keyDown)以及Quartz Event Services的建议。

我已尝试使用NSEvent,它似乎没有捕获keyDown事件,并且没有太多关于使用Quartz Event Services的最佳方法的文档。

要清楚,我的应用程序没有窗口,我希望能够在系统范围内捕获关键事件。

有人可以建议捕获按键的最佳方法吗?

谢谢!

0 个答案:

没有答案