swift - 如何模拟按下 macOS 修饰键

标签 swift cocoa macos-mojave

我正在尝试从 macOS 桌面应用程序模拟按下修饰键。当我设置击键的修饰符标志时,我可以发送带有修饰符的单个击键:

let keyd = CGEvent(keyboardEventSource: self.src, virtualKey: 0x06, keyDown: true) (v)
let keyu = CGEvent(keyboardEventSource: self.src, virtualKey: 0x06, keyDown: false) (v)

keyd?.flags = CGEventFlags.maskShift; //shift modifier

keyd?.post(tap: self.loc)
keyu?.post(tap: self.loc) 

仅发送修饰符,例如从我的应用程序模拟 Shift 并按键盘按键不起作用。

我尝试根据 Emulate / send Modifier Key (Cntrl, Alt, fn, Shift) in OSx 创建事件点击,没有运气。

我可以通过 AppleScript 发送修改键来破解这个问题。问题是,在 Mojave 似乎不再允许这样做。

是否可以仅发送修饰键?

最佳答案

终于可以使用事件点击来监听击键并设置修饰符标志了 Emulate / send Modifier Key (Cntrl, Alt, fn, Shift) in OSx

关于swift - 如何模拟按下 macOS 修饰键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369314/

相关文章:

c - 阻止调用 `dlsym` (RTLD_NEXT)

ios - CMErrorDomain 错误 103. 是什么意思? (CMP计步器)

swift - fatal error : Not enough bits to represent the passed value (Int16) in Swift

objective-c - NSPrintOperation从不调用drawRect :

c - OpenGL (GLFW) 在 macOS Mojave 上不显示图像

macos - 为什么 NSFetchRequest.shouldRefreshRefetchedObjects 不起作用?

ios - Swift - 在静态 UITableView 中滑动以删除(没有删除按钮)

ios - 我如何向使用点击手势识别器的图像添加事件指示器

objective-c - 如何在核心数据中保留有序列表

cocoa - 如何创建颜色选择器轮 slider ?