在UITextField上使用"Next"版本的Return按钮移动到下一个UITextField的最佳方法

3n.*_*3n. 27 iphone

我使用"返回键"的"下一步"值来获取"下一步"按钮代替"完成"按钮,但是(显然)按下它不会自动移动到我视图中的下一个UITextField.

这样做的正确方法是什么?在一个更大的主题上,有哪些提示可以在iPhone SDK中正确构建表单?

Noa*_*oon 36

使一些对象成为第一个文本字段的委托,并实现该- (BOOL)textFieldShouldReturn:(UITextField *)textField方法; 在那里,调用第二个文本字段-becomeFirstResponder.YES从那里返回将使文本字段执行其返回按钮的默认行为 - 我认为通常发送其操作消息.如果您没有添加任何内容作为该操作的目标,那么返回的内容并不重要.


Phi*_*rin 34

要建立诺亚的答案,如果你有很多文本字段并且不想拥有一堆if,那么你可以这样做:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    //[[self.view viewWithTag:textField.tag+1] becomeFirstResponder];

    UIView *view = [self.view viewWithTag:textField.tag + 1];     
    if (!view)         
          [textField resignFirstResponder];     
    else         
          [view becomeFirstResponder];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

从任何数字开始标记每个文本字段时,只要它们按顺序标记,在故事板或代码中标记,它就应该有效.