Dan
Dan

Reputation: 21

Retrieve UITextField Text for a specific UITextField Tag

Hey Just wondering how do you..

Iv created some code that automatically creates a certain amount of UITextField input by the user. Each UITextfield has a set tag automatically created.

The user then inputs his value into each of the UITextFields.

I want to retrieve the input text from the UITextFields which correspond to the tag.

I thought I nearly had it with:

NSString * tmpV = (NSString*)[choiceTextField.text viewWithTag:result];

where result is a increment, choiceTextField is the UITextField. With this I get a problem not defining instance, which I can't do as the UITextFields are generated in code not on the xib.

So to sum up, basically want the retrieve the text from a UITextField with specific tag.

Thanks Dan

Upvotes: 1

Views: 5520

Answers (3)

visakh7
visakh7

Reputation: 26390

UITextField *yourTextField = (UITextField *)[self.view viewWithTag:result];
NSString *getText = myTextField.text;

Hope this helps

Upvotes: 6

salo.dm
salo.dm

Reputation: 2315

Just go with Hetal Vora's solution: looks much cleaner!

-viewWithTag can be called on any view and searches all its subviews for one that matches the tag. Thus, you will find your UITextField by calling it on any view that is above it in the hierarchy. For example, you could call it on the view controller's view that contains your text field, as follows:

NSString *tmpV = [[myViewController.view viewWithTag:result] text];

If you are already in the view controller's class you could use:

NSString *tmpV = [[self.view viewWithTag:result] text];

On second thought, the following may be more correct & will avoid any compiler errors:

UITextField *myTextField = (UITextField *)[self.view viewWithTag:result];
NSString *tmpV = myTextField.text;

Upvotes: 0

Hetal Vora
Hetal Vora

Reputation: 3361

Your textfields must be a subview of a parent view. You need to write the following in your view controller of the parent view:

NSString *text = ((UITextField*)[self.view viewWithTag:result]).text;

Upvotes: 2

Related Questions