首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift2:多CGEventFlags的CGEventSetFlags

Swift2:多CGEventFlags的CGEventSetFlags
EN

Stack Overflow用户
提问于 2016-02-08 16:09:21
回答 1查看 589关注 0票数 4

我正在尝试触发一个快捷键,比如ctrl+cmd+space

首先,我的代码如下所示:

代码语言:javascript
复制
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的正确方法。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-08 17:01:29

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

代码语言:javascript
复制
let commandControlMask = (CGEventFlags.maskCommand.rawValue | CGEventFlags.maskControl.rawValue)
let commandControlMaskFlags = CGEventFlags(rawValue: commandControlMask)
CGEventSetFlags(keyDown, commandControlMaskFlags)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35274099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档