我如何识别哪个textField在包含2个uiTextFields的动态创建的UITableCell上触发了textFieldDidEndEditing

时间:2013-05-17 11:49:33

标签: ios uitextfield uitextfielddelegate

iOS 6 xcode 4.6.2使用故事板

大家好我的问题是这个

我使用的是动态UITableView,其中包含多个单元格,每个单元格上都有两个UITextFields。这两个字段在自定义单元格中定义为

@property (strong, nonatomic) IBOutlet UITextField *lowRangeField;

@property (strong, nonatomic) IBOutlet UITextField *highRangeField;

我希望使用

-(void) textFieldDidEndEditing:(UITextField*) textfield

获取值并将其保存到核心数据存储中。

现在,显然,我可以获得该值并将其分配给我喜欢的地方,因为我有指向textfield的指针。我的问题是我不知道如何确定cell实际上是哪个字段。我知道我可以让textfields superview来识别它所在的单元格,所以我可以找出它是哪一组lowRangeField和highRangeField然后我卡住了

我希望这是一件很简单的事情,因为我有点像菜鸟,所以我很遗憾!

感谢您花时间阅读并回复

干杯

西蒙

3 个答案:

答案 0 :(得分:15)

  

我的问题是我不知道如何识别这个实际上是哪个字段。

使用标记识别。

lowRangeField.tag = 1;
highRangeField.tag = 2;


-(void) textFieldDidEndEditing:(UITextField*) textfield
{
if (textField.tag == 1) {
NSLog(@" clicked in lowRangeField"); 

} else if (textField.tag ==2) {
 NSLog(@" clicked in highRangeField");
}
}

答案 1 :(得分:1)

试试这个

这用于标识您输入的文本字段的值。

- (void)viewDidLoad
{
    lowRangeField.tag = 100;
    highRangeField.tag = 200;
}

-(void) textFieldDidEndEditing:(UITextField*) textfield
{
     if (textField.tag == 100)
     {
        NSLog(@" clicked On lowRangeField"); 

     } 
     else if (textField.tag ==200) 
     {
         NSLog(@" clicked On highRangeField");
     }
}

答案 2 :(得分:0)

如果在ViewController(作为属性)中引用了两个(或多个)字段,则可以按照以下方式对其进行区分:

- (void) textFieldDidEndEditing:(UITextField *)textField {
if (textField==self.lowRangeField)
//do something
if (textField==self.highRangeField)
// do something else
}