In meiner OS X-App muss ich ein Vollbild-Fenster mit der Esc-Taste schließen. Also setze ich meine Instanz NSWindowController
als Ersthelfer für mein Fenster (dynamisch aus Code im Controller erstellt), überging die keyDown
Funktion mit meiner benutzerdefinierten Implementierung, um das Fenster zu schließen. Aber leider, wenn Fenster Ebene CGShieldingWindowLevel
gesetzt hat, keyDown
und keyUp
Funktionen nicht aufgerufen werden (natürlich bevor ich Esc drücken klicken ich auf das Vollbild-Fenster so sollten Fenster den Fokus hat)Schlüsselereignisse können nicht mit Vollbild bearbeitet werden NSWindow
ich das Fenster bin Erstellen mit:
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!
}
und Griff Schlüssel mit:
override func keyDown(theEvent: NSEvent) {
if (theEvent.keyCode == 53) {
self.window?.close()
}
}