Swift 在Mac OS X上捕获功能键
我是一个长期使用Objective-C的用户,随着新项目的出现,我慢慢地向Swift迁移。我用椰子荚来做更大的事情,但找不到一个好的图书馆来覆盖这个 因此,我在NSViewControllerSwift 在Mac OS X上捕获功能键,swift,macos,keyevent,Swift,Macos,Keyevent,我是一个长期使用Objective-C的用户,随着新项目的出现,我慢慢地向Swift迁移。我用椰子荚来做更大的事情,但找不到一个好的图书馆来覆盖这个 因此,我在NSViewControllerviewDidLoad中包含以下代码: _ = NSEvent.addGlobalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask) { (event) -> Void in print("Event is \(event)")
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!)
因此,在系统首选项的可访问性列表中选中我的应用程序后,第一次事件捕获工作就完美了。在OSX的任何地方,它都会捕捉按键。现在在文档中,它说对于功能键,我应该使用keyEventWithType
我发现了这个,并注意到它处理了相同的
sharedApplication
实例,但我不知道如何捕获事件。我是否以某种方式授权?此外,F-key常量是int
,该方法表示它只希望接收Uint16
。我可以打字,但我猜我用错了。用我后来找到的CocoaPods修复了它。工作完美