用户输入 11 位数字后关闭键盘

Dismiss keyboard after a user entered 11 digit

我一直在网站中寻找解决方案,以在用户输入 11 位数字后关闭键盘。我在这里找到了一个 Solution,但它是一个 Objective-c,我正在寻找一个 swift 代码,有人可以帮忙吗?

你可以试试这个:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let count: Int = textField.text?.count ?? 0
    if count >= 11 {
        textField.resignFirstResponder()
    }
    return true
}

这是它的工作原理

  func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

   // YOU SHOULD FIRST CHECK FOR THE BACKSPACE. IF BACKSPACE IS PRESSED ALLOW IT

    if string == "" {
        return true
    }

    if let characterCount = textField.text?.count {
        // CHECK FOR CHARACTER COUNT IN TEXT FIELD
        if characterCount >= 11 {
            // RESIGN FIRST RERSPONDER TO HIDE KEYBOARD
            return textField.resignFirstResponder()
        }
    }
    return true
}

编辑

1) 您应该将 IBOutlet 设置为您的文本字段

2) 在您的 textField 上将委托设置为自己。

3) YourViewController: UIViewController, UITextFieldDelegate { }

4) 像上面那样实现委托方法。检查退格键并允许用户输入退格键以从文本字段中删除字符。