【问题标题】:How simulate keypress using Swift?如何使用 Swift 模拟按键?
【发布时间】:2019-02-20 19:36:43
【问题描述】:

如何模拟按下键盘按钮?

我试过了:

let src = CGEventSource(stateID: CGEventSourceStateID.hidSystemState)

let cmdd = CGEvent(keyboardEventSource: src, virtualKey: 0x38, keyDown: true)
let cmdu = CGEvent(keyboardEventSource: src, virtualKey: 0x38, keyDown: false)
let spcd = CGEvent(keyboardEventSource: src, virtualKey: 0x31, keyDown: true)
let spcu = CGEvent(keyboardEventSource: src, virtualKey: 0x31, keyDown: false)

spcd?.flags = CGEventFlags.maskCommand;

let loc = CGEventTapLocation.cghidEventTap

cmdd?.post(tap: loc)
spcd?.post(tap: loc)
spcu?.post(tap: loc)
cmdu?.post(tap: loc)

还有:

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

但我得到了错误:

Use of unresolved identifier 'CGEvent' 
Use of unresolved identifier 'CGKeyCode' 
Use of unresolved identifier 'kVK_Control' 

等等

如何使用此代码?

要连接什么样的框架?

或者我该怎么做?

【问题讨论】:

  • 您的目标是哪个操作系统:macOS 还是 iOS?
  • 您是否导入了 CoreGraphics?这是针对 macOS 的吗?
  • @MichaelDautermann, rmaddy iOS

标签: ios swift keypress


【解决方案1】:

CGEventSourceRef only exists on macOS

您可能还有其他选择可以尝试。 Check out Olaf's answer here.

否则,您需要退后一步,弄清楚如何else在不涉及键盘的情况下测试 UI 背后的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 2015-05-31
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    相关资源
    最近更新 更多