用户输入 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) 像上面那样实现委托方法。检查退格键并允许用户输入退格键以从文本字段中删除字符。
我一直在网站中寻找解决方案,以在用户输入 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) 像上面那样实现委托方法。检查退格键并允许用户输入退格键以从文本字段中删除字符。