在 swift 4 中使用键盘删除字符后,文本字段计数显示前一个字符
textfield count show previous character after deleting character using keyboard in swift 4
我用过文本框。我需要计算字符数以在 11 个字符后调用函数。功能正常 find.But 当我删除一个字符时,它显示前一个字符。我在文本字段中输入了 01921687433。但是当从该数字中删除一个字符时,如 0192168743 它显示完整数字 11 位数字而不是 10 位数字。但是文本字段显示 0192168743。这是我的代码..
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//print("While entering the characters this method gets called")
let currentText = textField.text! + string
if(currentText.characters.count == 11){
print("account 11 digit =", currentText)
//Action here
}
return true;
}
请帮我找到当前文本
您确定更新文本的代码有误。请记住,可以删除、替换或添加任意数量的文本,并且它可以根据当前选择出现在字符串中的任何位置。
您的代码应如下所示:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newText = textField.text!.replacingCharacters(in: Range(range, in: textField.text!)!, with: string)
if newText.count == 11 {
print("account 11 digit = \(newText)")
}
return true
}
此代码中的强制展开是安全的。 UITextField
的 text
属性 永远不会 return nil
并且范围转换总是会成功,除非 Apple 在 UIKit 中引入错误。
另请注意,characters
的使用已被弃用一段时间。 Swift 行尾不需要分号,if
语句中也不需要括号。
我用过文本框。我需要计算字符数以在 11 个字符后调用函数。功能正常 find.But 当我删除一个字符时,它显示前一个字符。我在文本字段中输入了 01921687433。但是当从该数字中删除一个字符时,如 0192168743 它显示完整数字 11 位数字而不是 10 位数字。但是文本字段显示 0192168743。这是我的代码..
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//print("While entering the characters this method gets called")
let currentText = textField.text! + string
if(currentText.characters.count == 11){
print("account 11 digit =", currentText)
//Action here
}
return true;
}
请帮我找到当前文本
您确定更新文本的代码有误。请记住,可以删除、替换或添加任意数量的文本,并且它可以根据当前选择出现在字符串中的任何位置。
您的代码应如下所示:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newText = textField.text!.replacingCharacters(in: Range(range, in: textField.text!)!, with: string)
if newText.count == 11 {
print("account 11 digit = \(newText)")
}
return true
}
此代码中的强制展开是安全的。 UITextField
的 text
属性 永远不会 return nil
并且范围转换总是会成功,除非 Apple 在 UIKit 中引入错误。
另请注意,characters
的使用已被弃用一段时间。 Swift 行尾不需要分号,if
语句中也不需要括号。