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