2016-04-17 17 views
0

私は長年のObjective-Cユーザーで、新しいプロジェクトでゆっくりとSwiftに移行しています。私はより大きなもののためにCocoaPodを使用しており、これをカバーする良いライブラリを見つけることができません。Mac OS Xのキャプチャファンクションキー

だから私はで開始する私の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を受信したいとします。私はそれを型キャストすることができますが、私は間違って使用していると思います。

答えて

0

後で見つけたCocoaPods podを使って修正しました。完璧に動作します。