macOS Swift监视不适用于通用keyDown的全局事件

时间:2018-03-06 16:08:13

标签: macos events swift4

我确实为应用设置了必要的权限,对于某些事件,它正在运行。

例如:

NSEvent.addGlobalMonitorForEvents(matching: .flagsChanged) { print("\($0)") }

有效,但

NSEvent.addGlobalMonitorForEvents(matching: .keyDown) { print("\($0)") }

没有按'吨

所以我想知道,是否有可能全球监听任何按键?

2 个答案:

答案 0 :(得分:1)

通过

检查权限后

let accessEnabled = AXIsProcessTrustedWithOptions( [kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String: true] as CFDictionary)

我发现,由于运行Xcode调试器的程序授予应用程序权限是不够的,我还必须赋予Xcode本身的权限。

答案 1 :(得分:0)

schnesim是对的!!! 但是答案没有提到的一件事是,每当您在运行的代码段中更改某些内容时,都必须返回到首选项并禁用,然后重新启用对应用程序的权限(尽管不适用于xcode),我为此感到苦恼几个小时。