我正在尝试触发一个快捷键,比如ctrl+cmd+space
首先,我的代码如下所示:
let source = CGEventSourceCreate(.CombinedSessionState)
let keyDown = CGEventCreateKeyboardEvent(source, 49 as CGKeyCode, true)
let keyUp = CGEventCreateKeyboardEvent(source, 49 as CGKeyCode, false)
CGEventSetFlags(keyDown, .MaskCommand)
CGEventSetFlags(keyDown, .MaskControl)
CGEventPost(.CGSessionEventTap, keyDown)
CGEventPost(.CGSessionEventTap, keyUp)但是它不起作用,因为.MaskControl覆盖了.MaskCommand,这意味着我只需要使用方法CGEventSetFlags一次,并同时设置命令键和控制键。
因此,我搜索它,并发现您可以这样做,在Swift1:CGEventSetFlags(keyDown, .MaskCommand | .MaskControl)。对不对?嗯,我用的是Swift2,这不是工作。我试过CGEventSetFlags(keyDown, [.MaskCommand, .MaskControl]),也不工作。
所以,请告诉我在Swift2中使用Swift2的正确方法。谢谢!
发布于 2016-02-08 17:01:29
或“或”原始值并创建一个新的CGEventFlags项。
let commandControlMask = (CGEventFlags.maskCommand.rawValue | CGEventFlags.maskControl.rawValue)
let commandControlMaskFlags = CGEventFlags(rawValue: commandControlMask)
CGEventSetFlags(keyDown, commandControlMaskFlags)https://stackoverflow.com/questions/35274099
复制相似问题