NSTextField et prise de focus
Rocou
Membre
Bonjour,
C'est sans doute basic mais je ne vois pas comment faire pour que le curseur se positionne sur un NSTextField parmi d'autres. Je n'arrive pas non plus à passer d'un NSTextField à un autre en pressant la touche TAB.
J'ai cru comprendre qu'il fallait implémenter la fonction
Peut-être qu'il est possible de réaliser tout ceci sous IB?
C'est sans doute basic mais je ne vois pas comment faire pour que le curseur se positionne sur un NSTextField parmi d'autres. Je n'arrive pas non plus à passer d'un NSTextField à un autre en pressant la touche TAB.
J'ai cru comprendre qu'il fallait implémenter la fonction
- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector;
mais je n'arrive à rien.Peut-être qu'il est possible de réaliser tout ceci sous IB?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Relie l'outlet nextKeyView de TF1 à TF2.
Celle de TF2 à TF3.
Celle de TF3 à TF1.
En fait, dans la plupart des cas, ce n'est même pas nécessaire, c'est géré automatiquement. Tu peux le tester avec le simulateur d'IB.
Perso meme en ayant fait ça ça n'avait pas marché pour moi...
Si tu veux, par code, activer un NSTextField* tf1 particuler à un moment donné, de même cela passe par la notion de "responder" : en l'occurence il faut que tu demandes au NSTextField de devenir le firstResponder, pour lui demander d'avoir le focus donc.
Je te conseille de lire la doc sur la classe NSResponder, ainsi que le programming guide associé surtout, tu y trouveras tout un tas d'explications.
Pour fixer quel est le text field qui sera sélectionné au départ, il faut utiliser l'outlet initialFirstResponder de la fenêtre.
Merci. J'avais bien tenté cela mais l'outlet nextKeyView était caché plus haut (il fallait faire défiler les outlet vers le haut).
Par contre, cela ne fonctionne pas. Mon NSTextFiled est bien encadré en bleu mais le curseur n'est pas dedans
Il est bien "Editable" ?
Ha super, merci beaucoup!
[monNSTextField becomeFirstResponder]; pour Eaglelouk
Oui, par contre il est dans une NSView et non dans une fenêtre. Et dans une NSView, il n'y a pas d'outlet firstresponder.
Oui, mais ça c'est normal. Une vue est faite pour être incorporée dans une fenêtre. Si tu inclus plusieurs vues dans une fenêtre, quel initialFirstResponder la fenêtre doit-elle prendre ? C'est donc à faire par le code.
Oui, effectivement. Je me trouve un peu bête sur le coup.
Merci beaucoup en tout cas.
Oui j'ai du faire ça ducoup mais bon ça m'avait bien emmerdé que le nextKeyView ne marche pas... devoir coder un truc aussi bête... c'est embêtant ;D