UITextField成为FirstResponder

时间:2014-04-10 23:49:40

标签: ios objective-c uitableview

我试图让我的第一个响应者在tableview单元格中使用标签。我已经设置_txtFieldActive来获取活动的UITextFields标记。当我通过NSLog按下键盘上的下一个按钮时,我可以看到这一点。然而,现在我似乎无法弄清楚如何在该标签上重新启动第一响应者,然后将我的第一个响应者移动到标签102上?我试图将标签102分配给* tmp。

的代码行出错
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
  switch (textField.tag)
  {
    case 101:
      //Do Nothing do not want to close keyboard but move on to next UITextField

      if (_txtFieldActive.tag == 101)
      {NSLog(@"Tag = 101");
      UITextField *tmp = [textField.tag == 102];
      [tmp becomeFirstResponder];
  }
break;

case 102:
  [textField resignFirstResponder];
}

return YES;

}

非常感谢所有人提前为您提供帮助。

乔恩。

1 个答案:

答案 0 :(得分:1)

要使用给定标记获取当前视图层次结构中视图的引用,我们需要调用viewWithTag:

if (_txtFieldActive.tag == 101) {
    NSLog(@"Tag = 101");
    UITextField *tmp = [self.view viewWithTag:102];
    [tmp becomeFirstResponder];
}

尝试大小。

如果这是UITableViewController子类而不是UIViewController子类,则可能需要[self.tableView viewWithTag:102];,但self.view 应该< / strong>在任何一种情况下工作。