указание текстового поля с помощью делегата UITextField

#objective-c #cocoa-touch #xcode

#цель-c #cocoa-touch #в Xcode #xcode

Вопрос:

Привет, я новичок в программном обеспечении для приложений iphone / ipad. Я использую метод делегата TextField: «(BOOL)TextFields SOULDRETURN:(UITextField *)TextField». Я дошел до того, что когда пользователь вводит имя и нажимает «enter», а метка отображает то, что пользователь только что написал. Это всего лишь две строки кода, вот так:

 labelChange.text = textField.text;  //labelChange is my label in IB
return YES;
  

Поскольку у меня есть несколько текстовых полей в IB, этот код работает для всех из них. Я не уверен, как конкретизировать код и изменить эту метку только для ОДНОГО из моих текстовых полей.
Мои файлы .h выглядят следующим образом.

 @interface FirstViewController : UIViewController <UITextFieldDelegate> {

IBOutlet UILabel *labelChange;
IBOutlet UITextField *userName;
IBOutlet UITextField *homeValue; 
IBOutlet UITextField *downPayment;
IBOutlet UITextField *textField;
}

@property (nonatomic,retain) UILabel *labelChange;
@property (nonatomic,retain) UITextField *userName;
@property (nonatomic,retain) UITextField *homeValue;
@property (nonatomic,retain) UITextField *downPayment;
@property (nonatomic,retain) UITextField *textField;

@end
  

Я хочу, чтобы моя метка менялась только тогда, когда пользователь вводит текстовое поле с надписью «Имя пользователя».Я не уверен, как это сделать, я что-то упускаю?В IB я подключил всех своих делегатов текстового поля к «Владельцу файлов». Любой совет был бы действительно полезен. Спасибо!

Ответ №1:

Присвойте каждому из ваших текстовых полей номер тега, т. е.

 textField1.tag = 1
textField2.tag = 2
etc...
  

Тогда в вашем -(BOOL)textFieldShouldReturn:(UITextField *)textField вы можете сделать:

 switch (textField.tag) {
    case 1:
    labelChange1.text = textField.text;
    break;
    case 2:
    labelChange2.text = textField.text;
    break;
    etc... etc...
}