我是一名长期的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
实例,但我不知道如何捕获该事件。我是否以某种方式授权? F键常量也是int
,方法说它只想接收Uint16
。我可以对它进行类型转换,但我猜我错了。