Rendre une vue réceptrice des appuis au clavier
UniX
Membre
Salut.
Bon, en ce moment, je suis à fond dans les vues ....
Mon problème actuel : j'ai une fenêtre qui contient une vue perso dérivée de NSView, et une NSTableView.
Je voudrais pouvoir intercepter les appuis au clavier et agir en conséquence. J'ai donc écrit les méthodes keyDown pour les 2 vues.
Pour la NSTableView, pas de soucis, elle fonctionne correctement, mais pour ma vue perso, c'est également la NSTableView qui reçoit l'évènement ....
Comment la rendre réceptrice des appuis clavier ?
Bon, en ce moment, je suis à fond dans les vues ....
Mon problème actuel : j'ai une fenêtre qui contient une vue perso dérivée de NSView, et une NSTableView.
Je voudrais pouvoir intercepter les appuis au clavier et agir en conséquence. J'ai donc écrit les méthodes keyDown pour les 2 vues.
Pour la NSTableView, pas de soucis, elle fonctionne correctement, mais pour ma vue perso, c'est également la NSTableView qui reçoit l'évènement ....
Comment la rendre réceptrice des appuis clavier ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour ta vue perso, est-ce que tu t'es bien assuré qu'elle renvoie YES à - (BOOL)acceptsFirstResponder ?
Hors, c'est impossible via le schéma standard. En effet, une seule et unique view est le first-responder (donc celle qui reçoit les événements clavier) à la fois. Pour modifier cette état, il faut surcharger le responder supérieur, capturer l'évenement keyXXXX: qui t'intéresse.
Enfin, en fonction de la touche, tu dispatches l'évenement à la view que tu veux, qui va la traiter selon sa propre méthode keyXXXX:...
.
J'ai fait un rapide petit essai, et il semble effectivement que l'oubli de (BOOL)acceptsFirstResponder posait pb .... Il faut dire que je suis un peu largué avec ces histoires de responder, il va falloir que je m'y mette un peu ...
Merci.