2016-08-09 98 views
1

Ich habe eine NSTextView, wenn Benutzer drückt auf Shift + Return Key Ich sollte eine Aktion ausführen.Shift + Return-Taste Aktion in einer Cocoa App

Aber das Problem ist, dass ich nicht herausfinden konnte, ob der Benutzer auf Return Schlüssel gedrückt oder nicht.

Ich habe diesen Code verwendet, um zu wissen, ob Benutzer auf Shift-Taste gedrückt hat oder nicht.

override func flagsChanged(theEvent: NSEvent) { 

     switch theEvent.modifierFlags.intersect(.DeviceIndependentModifierFlagsMask) 
     { 
     case NSEventModifierFlags.ShiftKeyMask : 
      print("shift key is pressed") 
     case NSEventModifierFlags.ControlKeyMask: 
      print("control key is pressed") 
     case NSEventModifierFlags.AlternateKeyMask : 
      print("option key is pressed") 
     case NSEventModifierFlags.CommandKeyMask: 
      print("Command key is pressed") 
     case NSEventModifierFlags.FunctionKeyMask: 
      print("Function key is pressed") 

     default: 
      print("no key or more than one is pressed") 
     } 
    } 

Aber es gibt keine Option für die Return-Taste in NSEventModifierFlags.

Lassen Sie mich Ihre Gedanken wissen? Wie werde ich das lösen?

+0

verwenden, um die Antwort in Ihrer Frage nicht enthalten. Wenn eine Antwort Ihr Problem gelöst hat, markieren Sie die Antwort als akzeptiert; Sie können * auch * Ihre eigene Antwort posten. Vielen Dank. – Moritz

Antwort

1

Ich würde vorschlagen, dass Sie den folgenden Ansatz verwenden, um den keyCode zu verstehen, wenn es eine Verschiebung ist, Return-Taste oder was auch immer Sie im Falle des gewünschten Schlüssels erkennen möchten, führen Sie Ihre Logik.

import Cocoa 

class YourWindow: NSWindow { 
    override func keyDown(event: NSEvent) { 
     super.keyDown(event) 
     print("Caught a key down: \(event.keyCode)!") 
    } 
} 

können Sie auch eine keyUp Veranstaltung Bitte