iPhone:在uitableview中跳转到下一个uitextfield,如何?
在我的iPhone项目中,我正在使用UITableview和包含UITextfields的UITableViewCells。我在许多应用程序中看到,可以使用“下一步”按钮跳转到下一个单元格中的下一个文本字段。实现这一目标的最佳方式是什么 我的想法是通过正在编辑的textfield获取单元格的indexPath,然后通过cellforrowatinexpath获取下一个单元格。但是如何获取当前正在编辑的单元格的索引 谢谢iPhone:在uitableview中跳转到下一个uitextfield,如何?,iphone,uitableview,uitextfield,Iphone,Uitableview,Uitextfield,在我的iPhone项目中,我正在使用UITableview和包含UITextfields的UITableViewCells。我在许多应用程序中看到,可以使用“下一步”按钮跳转到下一个单元格中的下一个文本字段。实现这一目标的最佳方式是什么 我的想法是通过正在编辑的textfield获取单元格的indexPath,然后通过cellforrowatinexpath获取下一个单元格。但是如何获取当前正在编辑的单元格的索引 谢谢 在表视图中保留对UITextField实例的引用 为UITextField实
UITextField
实例的引用李>
UITextField
实例指定唯一的标记值[finalTextField setReturnKeyType:UIReturnKeyDone]代码>
UITextField
委托方法-textfield应返回:
,遍历响应者:
- (BOOL) textFieldShouldReturn:(UITextField *)tf {
switch (tf.tag) {
case firstTextFieldTag:
[secondTextField becomeFirstResponder];
break;
case secondTextFieldTag:
[thirdTextField becomeFirstResponder];
break;
// etc.
default:
[tf resignFirstResponder];
break;
}
return YES;
}
假设UITextField已添加到UITableViewCell,如下所示
UITableViewCell *cell;
UITextField *textField;
...
textField.tag = kTAG_TEXTFIELD;
[cell.contentView addSubview:textField];
...
您可以通过以下方式获取当前索引路径:
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
if([textField.superView.superView isKindOfClass:[UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *)textField.superView.superView;
NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell];
}
...
下一行的UITextField将是
NSIndexPath *indexPathNextRow = [NSIndexPath indexPathForRow:(indexPath.row+1) inSection:indexPath.section];
UITableViewCell *cellNextRow = (UITableViewCell *)[self.myTableView cellForRowAtIndexPath:indexPathNextRow];
UITextField *textFieldNextRow = (UITextField *)[cellNextRow.contentView viewWithTag:kTAG_TEXTFIELD];
希望有帮助 谢谢!但我只是跟踪当前的文本字段,因为有很多文本字段。我可以在不使用标记的情况下以某种方式获取下一个文本字段吗?当然,只要保留对它们的引用,
UITextField*firstTextField
,或者使用数组等。但是标记可能是识别代理文本字段的最快方法。但是如果我不想跟踪所有文本字段或标记?我是否可以以某种方式获取当前编辑的文本字段所在的当前单元格,然后获取indexpath?如果在单元格上启用了选择功能,则可以使用-tableView:didselectRowatingIndexPath:indexpath
方法进行操作,但这与文本字段无关,我想知道是否没有其他方法-在XCode下运行模拟器时,您可以使用硬件键盘上的“tab”从一个字段跳到另一个字段。。。但我不知道这是否对我们有用。在iOS7中,您需要将textField.superView.superView替换为textField.superView.superView.superView