#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...
}