2010-01-14 19 views
5

Ich habe ein paar NSTextFields in einem Fenster (getaggt 1-8) und ich frage mich, ob es möglich ist, auf jedes einzelne Textfeld programmatisch durch seine Tag-Nummer zuzugreifen, damit ich dann seinen Wert bekommen/setzen kann?NSTextField nach Tag-Nummer abrufen?

Ich bin ein Neuling und während ich weiß, wie man auf diese Felder mit Namen zugreifen kann, macht es durch Tag-Nummer Dinge viel einfacher für das, was ich in diesem bestimmten Fall erreichen möchte.

Vielen Dank :-)

+0

„... Ich weiß, wie diese Felder durch Namen für den Zugriff auf ...“ Sie meinen, durch Variablen die Steckdose. In den meisten Cocoa-Klassen (einschließlich NSTextField) können Sie ihre Instanzen nicht benennen, und selbst bei solchen, die normalerweise nicht funktionieren, können Sie eine Instanz nicht nach Namen suchen. –

+0

Korrigieren. Ich habe meine Ausgangsvariablen gemeint. – Bender

Antwort

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

Danke für die schnelle Antwort, Kenny :-) Leider bin ich noch nicht auf Subviews und Superviews etc. damit ich den obigen Pseudocode nicht erfolgreich in den Code übersetzen konnte, der funktioniert ... Ich habe es versucht: NSTextView * fieldToChange; fieldToChange = [[self superview] viewWithTag: 4]; aber das ist offensichtlich falsch. Das Fenster gehört übrigens zu einer NSWindowController-Unterklasse innerhalb meiner (NSObject) -App, wenn das hilft. – Bender

+1

Wenn Sie nicht wissen, welches der Superview ist, legen Sie einfach das Fensterobjekt dort hin. – kennytm

+0

Alle jetzt festgelegt Kenny! Schätzen Sie Ihre Hilfe :-) – Bender