Swift 4中的macOS中的虚拟按键按下

时间:2018-07-31 15:15:59

标签: swift macos keypress

我是Swift编码的新手,我试图创建一个简单的Mac应用程序,在其中我可以打开一些应用程序,切换到新的Space,再打开一些其他应用程序,等等。

我决定尝试模拟虚拟按键,以便切换到预先创建的Space。 (在我的系统上,将“ ctrl-a”切换到第一个空格,将“ ctrl-b”切换到第二个空格,依此类推。

以前的搜索在这里为我提供了以下代码:

func keyPress(letterKeyCode: CGKeyCode) {
   let controlKeyDownEvent = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Control), keyDown: true)
   controlKeyDownEvent?.flags = CGEventFlags.maskCommand
   controlKeyDownEvent?.post(tap: CGEventTapLocation.cghidEventTap)

   let letterKeyDownEvent = CGEvent(keyboardEventSource: nil, virtualKey: letterKeyCode, keyDown: true)
   letterKeyDownEvent?.flags = CGEventFlags.maskCommand
   letterKeyDownEvent?.post(tap: CGEventTapLocation.cghidEventTap)

   let letterKeyUpEvent = CGEvent(keyboardEventSource: nil, virtualKey: letterKeyCode, keyDown: false)
   letterKeyUpEvent?.flags = CGEventFlags.maskCommand
   letterKeyUpEvent?.post(tap: CGEventTapLocation.cghidEventTap)

   let controlKeyUpEvent = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Control), keyDown: false)
   controlKeyUpEvent?.flags = CGEventFlags.maskCommand
   controlKeyUpEvent?.post(tap: CGEventTapLocation.cghidEventTap)
}

但是它不起作用。任何帮助表示赞赏。

0 个答案:

没有答案