我曾经使用过addLocal,它可以在我的应用程序中工作,但是我想在全球范围内观察,所以我尝试了addGlobalMonitorForEventsMatchingMask:handler:,但是NSEventKeyDown根本没有被触发。显然,它需要启用辅助权限。
我能够在全球范围内观看NSScrollWheel事件。这很有趣。
在我投入大量的时间并来到我希望首先问的相同的障碍之前,使用CGEventTap来监视关键事件是否会在全球范围内工作,而不需要启动辅助?
我还将探索其他方法,但我非常好奇(为了学习),CGEventTap是否会在全球范围内工作,没有任何问题。他似乎在这里暗示它可能有用,但评论显示出一些混淆:https://stackoverflow.com/a/9345536/1828637
我将使用的其他方法也是碳API。
发布于 2015-08-30 19:07:41
对于辅助设备权限,CGEventTap需要与全局事件监视器相同的访问权限。来自CGEventTapCreate()的文档
如果下列条件之一为真,事件点击将接收向上键和向下键事件:
我建议使用旧的碳RegisterEventHotKey()机制。它仍然是不受欢迎的,可用于64位。这与大部分碳形成了鲜明的对比。基本上,苹果意识到目前还没有合适的替代品。
https://stackoverflow.com/questions/32299785
复制相似问题