我正在编写一个应用程序,它将使用您的手机作为触摸板,并通过 Mac 上的 Swift 代码模拟不同触摸板的手势。但是,当我尝试在工作区之间实现滑动(与三指滑动触摸板相同)时,由于可以使用 control + arrow 调用,我遇到了调用按键的问题。
我看过这个讨论并写成这样
func rightScreen() {
let key = CGEvent(keyboardEventSource: nil, virtualKey: 0x7C, keyDown: true)
key?.flags = .maskControl
key?.post(tap: .cghidEventTap)
}
但它的工作原理就像简单的箭头单击一样。我怎样才能让它正常工作?
发布按键事件时,您需要同时考虑
keyDown
和 keyUp
事件。 keyUp
必须在keyDown
之后手动发布,否则密钥将被无限阻止。
所以,用这个代替:
func rightScreen() {
let keyDown = CGEvent(keyboardEventSource: nil, virtualKey: 0x7C, keyDown: true)
key?.flags = .maskControl
let keyUp = CGEvent(keyboardEventSource: nil, virtualKey: 0x7C, keyDown: false)
keyUp?.flags = .maskControl
keyDown?.post(tap: .cghidEventTap)
keyUp?.post(tap: .cghidEventTap)
}