gpt4 book ai didi

swift 2 : CGEventSetFlags with multi CGEventFlags

转载 作者:搜寻专家 更新时间:2023-10-31 08:32:42 25 4
gpt4 key购买 nike

我正在尝试触发快捷键,例如 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 中使用 CGEventSetFlags 的正确方法。谢谢!

最佳答案

“或”原始值并创建一个新的 CGEventFlags

let commandControlMask = (CGEventFlags.maskCommand.rawValue | CGEventFlags.maskControl.rawValue)
let commandControlMaskFlags = CGEventFlags(rawValue: commandControlMask)
CGEventSetFlags(keyDown, commandControlMaskFlags)

关于 swift 2 : CGEventSetFlags with multi CGEventFlags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com