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