如何引用方法中创建的UITextField?

时间:2011-06-11 19:02:43

标签: iphone uitableview uitextfield

我将UITextFields添加到UITableView方法中的cellForRowAtIndexPath。 一旦设置完毕,我需要访问它们,例如我想在选择背景时使键盘消失:

- (IBAction)touchBackground:(id)sender {
  [textField resignFirstResponder];
}

并在选择它们时滚动到它们:

- (void) textFieldDidBeginEditing:(UITextField *)textField {
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [settingsTable scrollToRowAtIndexPath:[settingsTable indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

但是它们只作为方法中的临时变量存在,所以我不知道如何引用它们。我可以事先在头文件中声明它们,但是我希望我不必这样做,因为这种方式可以添加更多字段,所有我需要做的就是添加一个单元格标题数组。

1 个答案:

答案 0 :(得分:3)

您应该使用此propoerty添加实例变量:

@property (assign) UITextField *selectredTextField;

然后,您将所选字段分配给此实例变量

- (void) textFieldDidBeginEditing:(UITextField *)textField {
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [settingsTable scrollToRowAtIndexPath:[settingsTable indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
    self.selectredTextField = textField;
}

现在在你的方法中你可以辞职

- (IBAction)touchBackground:(id)sender {
  [self.selectredTextField resignFirstResponder];
}