按下 Enter 时将焦点转移到下一个字段

Posted

技术标签:

【中文标题】按下 Enter 时将焦点转移到下一个字段【英文标题】:Shift focus to next field when Enter is pressed 【发布时间】:2014-05-30 07:56:09 【问题描述】:

我在将焦点转移到 Ipad 中的下一个文本字段时遇到问题。

场景:

[TEXTFIELD1] [TEXTFIELD2]

当在 TEXTFIELD1 上按下回车键时,将焦点转移到 TEXTFIELD2。

我已经搜索了解决方法并尝试了它们,但没有任何效果。

请帮帮我。

【问题讨论】:

可能相关 - ***.com/questions/18728166/… 我已经尝试过了,但它需要用户交互才能单击下一步按钮,但在我的情况下,焦点需要在输入键按下时转移 【参考方案1】:

最简单的方法是设置文本字段的标签属性

- (void)textFieldShouldReturn:(UITextField *)textField 

   UITextField *nextField = (UITextField*)[self.view viewWithTag:textField.tag + 1];
   // if a textfield with this tag exist make it first responder
   if(nextField)
   
     [nextField becomeFirstResponder];
   
   else
   
     // hide keyboard
     [self.view endEditing:YES];
    

    return YES;

【讨论】:

【参考方案2】:

您应该为您的文本字段创建 2 个 IBOutlets,并为它们设置委托。

你必须在委托中实现这个方法:

- (void)textFieldShouldReturn:(UITextField *)textField 
    if (textField == self.textField1) 
        [self.textField2 becomeFirstResponder];
    
    return YES;

现在,当用户在 textField1 中按下 return 时,textField2 将成为焦点。

【讨论】:

以上是关于按下 Enter 时将焦点转移到下一个字段的主要内容,如果未能解决你的问题,请参考以下文章

按下回车键时如何将焦点移到下一个字段?

在WPF DataGrid中按Enter键时将焦点移动到下一个单元格?

如何将焦点转移到select2中的下一个元素

将焦点从一个组件转移到另一个组件

WinForm中变Enter键为Tab键实现焦点转移的方法

WinForm中变Enter键为Tab键实现焦点转移的方法