【问题标题】:How to set focus to an iOS text field?如何将焦点设置到 iOS 文本字段?
【发布时间】:2011-11-23 10:28:57
【问题描述】:

如何以编程方式将焦点设置到 iOS 中的某些 UITextField?

当您点击文本字段时,键盘会弹出以开始编辑文本字段。

如何在不要求用户点击文本字段的情况下将焦点放在文本字段并调出键盘

【问题讨论】:

  • 焦点使用 [textfield becomeFirstResponder]
  • 根据您的要求..如果您想添加点击事件!您可以设置 Single TapGesture 这是单击事件的替代方法。 [YourtextField addGestureRecognizer:tapGesture];在添加之前不要忘记声明点击手势!!
  • 这里要问什么并不难,而且这是一个完全合法的问题。像这样结束问题对社区没有帮助。
  • @chaiguy 这个问题显示没有研究,也没有以前的尝试。根据新的指导方针,这仍将被搁置为 Offtopic
  • 这是一个绝对有效的问题。用户不是以英语为母语的作家 - 但那又怎样!??!这是关于 iOS 开发的一个重要的基本问题——实际上答案是“没那么容易”。

标签: ios uitextfield textfield


【解决方案1】:

对于 Swift,您可以使用:

TextFieldYouWant.becomeFirstResponder()

【讨论】:

    【解决方案2】:

    动态改变焦点:

    [yourTextField becomeFirstResponder];
    

    【讨论】:

    • 此站点仅获取输入并将其放置到另一个文本字段中。我问如何在文本字段中设置焦点(如 android 中的 setOnFocus)以及如何在 iphone 中为文本字段创建点击事件。
    • 为 TextField 添加 TouchUpInside 事件
    【解决方案3】:

    使 textField 成为第一响应者;这也会弹出键盘:

    [self.textField becomeFirstResponder];
    

    还有一些更典型的示例代码可能会对某人有所帮助,

    在您的故事板中,单击其中一个文本字段,然后将 outlets-delegate 设置为有问题的类。在该类中,在 .h 文件中确保声明它是 UITextFieldDelegate

    @interface Login : UIViewController <UITextFieldDelegate>
    

    然后在 .m 文件中,你可以有这个例如...

    -(BOOL)textFieldShouldReturn:(UITextField *)textField {
        if ( textField == self.loginEmail ) { [self.loginPassword becomeFirstResponder]; }
        if ( textField == self.loginPassword ) { [self yourLoginRoutine]; return YES; }
        return YES;
    }
    

    当用户单击虚拟键盘上的“下一步”按钮(在“电子邮件”字段中)时,它会正确地将您移至密码字段。当用户点击虚拟键盘上的“下一步”按钮 - 在“密码”字段上 - 它会正确调用您的 yourLoginRoutine。

    (在情节提要的属性检查器上,请注意,您可以在 Return 键上选择所需的文本......这里“下一步”可以很好地用于电子邮件字段,“完成”可以很好地用于密码字段。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 2014-04-24
      • 1970-01-01
      相关资源
      最近更新 更多