2010-01-14 8 views
5

J'ai un tas de NSTextFields sur une fenêtre (étiqueté 1-8) et je me demande s'il est possible d'accéder à chaque champ de texte par programme par son numéro de tag afin que je puisse obtenir/définir sa valeur? Je suis un novice et bien que je sache comment accéder à ces champs par leur nom, le faire par numéro de tag rendra les choses beaucoup plus simples pour ce que j'essaye de réaliser dans ce cas particulier.Obtenir NSTextField par numéro de tag?

Merci beaucoup :-)

+0

« ... Je sais comment accéder à ces champs par nom ... » Vous voulez dire par vos variables de sortie. La plupart des classes Cocoa (y compris NSTextField) ne vous permettent pas de nommer leurs instances, et même celles qui le font ne vous permettent généralement pas de rechercher une instance par son nom. –

+0

Correct. Je voulais dire à travers leurs variables de sortie. – Bender

Répondre

6
the_fourth_textview = [the_superview_containing_all_textfields viewWithTag:4]; 
+0

Merci pour la réponse rapide, Kenny :-) Malheureusement, je ne suis pas encore à la vitesse sur les sous-vues et superviews etc. donc je n'ai pas réussi à traduire le pseudo-code ci-dessus en code qui fonctionne ... J'ai essayé: NSTextView * fieldToChange; fieldToChange = [[auto-évaluation] viewWithTag: 4]; mais c'est évidemment faux. En passant, la fenêtre appartient à une sous-classe NSWindowController dans mon application (NSObject) si cela peut vous aider. – Bender

+1

Si vous ne savez pas quelle est la superview, placez simplement l'objet fenêtre là. – kennytm

+0

Tout fixé maintenant Kenny! Appréciez votre aide :-) – Bender