转发MacOS App Key按到iOS模拟器

时间:2018-05-17 02:28:58

标签: macos

我想将正在运行的MacOS应用程序收到的所有按键事件转发给iOS模拟器。

我使用runningApplications(withBundleIdentifier:)来获取正在运行的iOS模拟器的pid。 然后我让我的MacOS应用程序收听任何按键事件,并使用CGEvent postToPID转发收到的密钥代码。

var pid: pid_t!

override func viewDidLoad() {
    super.viewDidLoad()

    let runningApplications = NSRunningApplication.runningApplications(withBundleIdentifier: "com.apple.iphonesimulator")
    pid = runningApplications[0].processIdentifier

    NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
        (event) -> NSEvent? in
        self.keyPressDown(with: event)
        return event
    }
}

func keyPressDown(with event: NSEvent) {
    print(event.keyCode)
    let cgEvent = CGEvent(keyboardEventSource: nil, virtualKey: event.keyCode, keyDown: true)
    cgEvent?.postToPid(pid)
}

这是我正在使用的代码。此代码段用于将按键事件从正在运行的MacOS应用程序转发到其他应用程序,我在Firefox浏览器,Sublime Text上进行了测试。

为什么iOS模拟器无法接收这些按键事件。

0 个答案:

没有答案