我是一位长期的 Objective-C 用户,并且正在通过新项目慢慢迁移到 Swift。我使用 CocoaPods 来处理更大的事情,但找不到一个好的库来解决这个问题。
所以我的 NSViewController viewDidLoad
中有这段代码:
_ = NSEvent.addGlobalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask) {
(event) -> Void in
print("Event is \(event)")
}
let event = NSEvent.keyEventWithType(NSEventType.KeyDown,
location: CGPoint(x:0,y:0),
modifierFlags: NSEventModifierFlags(rawValue: 0),
timestamp: 0.0,
windowNumber: 0,
context: nil,
characters: "\n",
charactersIgnoringModifiers: "",
isARepeat: false,
keyCode: 0) //NSF7FunctionKey
NSApplication.sharedApplication().sendEvent(event!)
因此,在系统偏好设置的辅助功能列表中检查我的应用程序后,第一个事件捕获工作完美。在 OS X 中的任何地方,它都会捕获按键操作。现在在docs它说对于功能键我应该使用keyEventWithType
。
我找到了这个gist并注意到它处理相同的 sharedApplication
实例,但我不知道如何捕获该事件。我是否以某种方式委托(delegate)他人?此外,F 键常量是 int
,该方法表示它只想接收 Uint16
。我可以输入它,但我想我用错了。
最佳答案
使用 CocoaPods 修复了该问题 pod我后来发现的。工作完美。
关于swift - 捕获 Mac OS X 上的功能键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675134/