Comment puis-je détecter que la touche Maj a été enfoncée?
J'ai un NSView
sous-classe, et je tiens à réagir lorsque l'utilisateur appuie sur la ⇧ Shift. Cependant, -[NSView keyDown:]
(que j'ai actuellement override) n'est pas appelé lorsque des touches de modification sont les seuls pressé.
Comment puis-je être averti lorsque la touche Shift a été pressé?
source d'informationauteur zneak
Vous devez vous connecter pour publier un commentaire.
Du Cacao, de la gestion des événements guide:
Plus de détails peuvent être trouvés ici.
La documentation pour NSResponder également les états suivants:
Voici un exemple, légèrement modifié à partir de Matt Gemmell est ModKeyTest exemple d'application.
Créer une base de Cacao application avec un bouton et crochet le bouton à une IBAction comme ça.
Ensuite, essayez de votre choix de combinaison de touches.
Les docs sont un peu floue, mais Matt exemple est très clair et présente tous vous avez besoin pour tirer profit de ce en outre de la documentation.
Voici le code traite avec les principaux événements avec swift 3.0.1 testé sur Xcode 8.2.1 et macOS 10.12.2
Vérification pour les pressés:
Vérification communiqué de presse:
Il convient de noter, la fonction NSLog sera appelée uniquement si la touche MAJ, puis une autre touche est pressée.
Espérons que cette aide!
dans la pomme de la documentation :
Vous avez à remplacer le keydown méthode
avec le suivant NSEvent modificateur de drapeaux