使用UITextField委托指定textField

时间:2011-02-21 00:44:00

标签: objective-c cocoa-touch xcode

您好我是iphone / ipad应用软件的新手。 我正在使用textField委托方法: “(BOOL)textFieldShouldReturn:(UITextField *)textField”。 当用户输入名称并按“输入”并且标签显示用户刚写的内容时,我已经达到了这一点。这只是两行代码:

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

由于我在IB中有几个文本字段,因此该代码适用于所有这些字段。我不确定如何具体使用代码并且只对我的textFields中的一个进行标签更改。 我的.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

我希望我的标签只有在文本字段中标记为“userName”的用户类型时才会更改。我不知道该怎么做,我错过了什么吗?在IB中,我将所有文本字段代表连接到'文件所有者”。任何建议都会非常有用。谢谢!

1 个答案:

答案 0 :(得分:3)

为每个文本字段分配标签号,即

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