【问题标题】:UITextField, automatically move to next after 1 character using Swift 2UITextField,使用 Swift 2 在 1 个字符后自动移动到下一个
【发布时间】:2018-01-23 10:03:08
【问题描述】:

我有 4 个 UITextField。输入一个字符后,我希望下一个UITextField 自动激活,而无需按next

我正在使用 Swift 2

有什么想法吗?

【问题讨论】:

  • resignFirstResponder 用于 currentTextField 并使用 becomeFirstResponder 用于您想要激活的文本字段
  • 增强语法

标签: ios swift swift2 uitextfield


【解决方案1】:

首先为每个UITextField设置不同的标签。然后添加UIControlEvents.editingChanged方法。

当您将 @IBOutlets 和 @IBActions 与您的 xib 文件连接时,您将获得类似以下内容:

class ViewController: UIViewController {

      @IBOutlet weak var textField1: UITextField!
      @IBOutlet weak var textField2: UITextField!
      @IBOutlet weak var textField3: UITextField!
      @IBOutlet weak var textField4: UITextField!

      @IBAction func textChanged(_ sender: UITextField) {
          if sender.hasText {
             switch sender {
             case textField1:
                textField2.becomeFirstResponder()
             case textField2:
                textField3.becomeFirstResponder()
             case textField3:
                textField4.becomeFirstResponder()
             default:
                sender.resignFirstResponder()
             }
          }
      }

  }

【讨论】:

  • 如果您将它们全部连接到同一个操作,则无需标记它们。只需switch sender 并检查case textField1:
  • 也可以查看if sender.hasText
  • 是的,它会更干净。谢谢。
  • 不需要第一个resignFirstResponder,只会让键盘闪烁。
【解决方案2】:

要选择下一个文本字段,您必须指定第一个响应者。您可以使用 textField 的委托方法来确定何时应该激活文本字段。

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2012-03-02
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多