如何在标签栏按钮的操作中从一个文本框移动到下一个文本框

3

我的iPhone应用程序中有6个文本框和一个选项卡(有3个按钮:下一步,上一步,完成)。

我需要做的就是当我点击下一步按钮时,焦点应该从第一个文本框移动到下一个文本框。

在下一步按钮的IBAction中,我编写以下代码:

if ([txt1 isFirstResponder]==YES) {

    NSLog(@"TXT1");

    [txt1 resignFirstResponder];

    [txt2 becomeFirstResponder];

}
else if ([txt2 isFirstResponder]==YES) {

    [txt2 resignFirstResponder];

    [txt3 becomeFirstResponder];

}
else  if ([txt3 isFirstResponder]==YES) {

    [txt3 resignFirstResponder];

    [txt4 becomeFirstResponder];

}
else  if ([txt4 isFirstResponder]==YES) {

    [txt4 resignFirstResponder];

    [txt5 becomeFirstResponder];

}
else  if ([txt5 isFirstResponder]==YES) {

    [txt5 resignFirstResponder];

    [txt6 becomeFirstResponder];

}
else  if ([txt6 isFirstResponder]==YES) {

    [txt6 resignFirstResponder];

}

当我使用这段代码时,NSLog会无限打印。

有什么解决办法吗?

3个回答

1
可能是因为如果txt1 isFirstResponder,你正在将txt2设置为firstResponder,然后检查txt2是否是firstResponder。你应该在每个if语句的结尾加上一个break;

1

糟糕,这是我的错误。我忘记将textField的代理连接到文件所有者了。 谢谢大家。


2
尝试编辑你的问题,而不是为你的错误创建答案。 - HelmiB

0
实际上,在每个if语句中,您都不需要resignFirstResponder,因为您不想在切换到另一个字段时每次都关闭键盘。
相反,只需将resignFirstResponder留在txt6中即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接