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

时间:2018-07-17 06:39:16

标签: ios swift dismiss

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

2 个答案:

答案 0 :(得分:1)

这是它的工作方式

  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设置为textField

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

3)YourViewController:UIViewController,UITextFieldDelegate {}

4)如上实现委托方法。检查是否有退格键,并允许用户是否输入退格键以从textField中删除字符。

答案 1 :(得分:0)

您可以尝试以下方法:

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
}