在iPhone SDK的键盘中实现"下一步"选项

Zac*_*ith 4 iphone

我正在努力实现当用户选择键盘中的"下一个"按钮时的任务非常困难,然后将用户发送到下一个文本字段以开始编辑.在我的例子中,我有三个文本字段.这就是我所做的,希望你能填补我的错误.请记住,我几周前刚拿起SDK,这可能是问题的一部分:)

在我的ViewControler.h文件中,我创建了以下方法

-(IBAction)nextPressed:(id) sender;
Run Code Online (Sandbox Code Playgroud)

在我的ViewController.m文件中,我创建了以下操作

-(IBAction)nextPressed:(id) sender 
{
    if ([txtUserName isFirstResponder]) 
    {
        [txtUserName2 becomeFirstResponder];
    }
    if ([txtUserName2 isFirstResponder]) 
    {
        [txtUserName3 becomeFirstResponder];
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的.xib文件中,我链接了第一个文本字段(右键单击文本字段并拖动到文件所有者并在事件下选择'nextPressed:'选项)到我的文件所有者.我已经尝试链接到第一个文本字段,并且当它不能用于所有三个文本字段时.我还尝试将一个文本字段链接到文件所有者但不是第一响应者,然后是所有文本字段,没有运气.此外,对于每个文本字段,我选择了返回键为"NEXT".

现在,当我构建/运行时,我可以编辑文本字段并查看右下方的"下一步"按钮,但它不会将我移动到下一个字段.

我在这里做错了什么?我使用了这篇文章中的说明(你如何改变UIControl,专注于iPhone?)但似乎在这里缺少一些巨大的东西.

任何帮助,这将极大的赞赏.在过去的四个小时里,我一直在盯着这个,并且谷歌搜索我能想到的每一个可能的搜索词,并且不能轻易地围绕完成这个所需的步骤.再次,帮助将是非常有帮助的:)

Tim*_*Tim 22

我认为您不需要定义单独的选择器nextPressed:- 而是实现UITextFieldDelegate协议方法textFieldShouldReturn:,如下所示:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if(textField == txtUserName) {
        [txtUserName2 becomeFirstResponder];
    } else if(textField == txtUserName2) {
        [txtUserName3 becomeFirstResponder];
    }
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

当按下Enter键(在您的情况下,是Next键)时,该特定方法会监视.一旦实现了,只需将三个文本字段中的每一个的委托设置为实现类(可能是您的视图控制器),您应该很好.