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

sch*_*sim 6 macos events swift4

我确实为该应用程序设置了必要的权限,并且对于某些事件它正在工作。

例如:

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

有效,但是

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

没有。

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

sch*_*sim 8

通过检查权限后

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

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