我需要在 macOS Mojave 应用程序 (Xcode 10.3) 中模拟用户键盘输入(例如,键入字母“a”)。我正在尝试使用此问题中发布的代码:
https://stackoverflow.com/questions/39647443/simulate-keystrokes-with-quartz-events-in-macos-sierra
但是,在我的应用程序请求控制系统事件的权限并且我运行下面的代码块之后,什么也没有发生(除了让我知道代码块实际上正在执行的语句打印之外)。代码运行没有任何错误,但我没有任何功能。
我已确保我的应用未被沙盒化,并且我的应用有权控制我的计算机和系统事件(在安全和隐私方面)。
这是我正在使用的代码(其中 99% 来自上面链接的帖子):
let eventSource = CGEventSource(stateID: CGEventSourceStateID.hidSystemState)
let key: CGKeyCode = 0 // virtual key for 'a'
let eventDown = CGEvent(keyboardEventSource: eventSource, virtualKey: key, keyDown: true)
let eventUp = CGEvent(keyboardEventSource: eventSource, virtualKey: key, keyDown: false)
let location = CGEventTapLocation.cghidEventTap
eventDown?.post(tap: location)
eventUp?.post(tap: location)
知道为什么这对我不起作用吗?
最佳答案
需要在info.plist中添加“隐私-AppleEvents发送使用说明”
每当您对代码进行任何更改时,您都必须再次禁用和启用应用程序的安全和隐私权限 -> 辅助功能
关于swift - 无法在 macOS Mojave 应用程序中模拟击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57683783/