1
私のOS Xアプリケーションでは、Escキーでフルスクリーンウィンドウを閉じる必要があります。だから、NSWindowController
のインスタンスを(ウィンドウ内のコードから動的に作成された)私のウィンドウの最初のレスポンダに設定し、カスタム実装でkeyDown
関数をオーバーライドしてウィンドウを閉じます。フルスクリーンNSWindowからのキーイベントを処理できません
CGShieldingWindowLevel
にレベルを設定しているとき、
keyDown
と
keyUp
関数が呼び出されていない
私は、ウィンドウを作成しています(私はフルスクリーンウィンドウにクリックし、Escキーを押す前に、当然のはとてもウィンドウにフォーカスしている必要があります)
self.window = NSWindow(
contentRect: screen.frame,
styleMask: NSBorderlessWindowMask,
backing: NSBackingStoreType.Buffered,
defer: false,
screen: screen
)
if let w = window {
w.level = Int(CGShieldingWindowLevel())
w.backgroundColor = NSColor.blackColor()
w.makeKeyAndOrderFront(self)
w.makeFirstResponder(self)
self.webView = WKWebView(frame: w.frame, configuration: config)
w.contentView = webView!
}
とでキーを処理します。
override func keyDown(theEvent: NSEvent) {
if (theEvent.keyCode == 53) {
self.window?.close()
}
}