UITextField 崩溃撤消键盘图标
UITextField crash undo keyboard icon
在 iPad 应用程序中遇到此错误。在文本字段键盘将出现。写任何文本,如“qwertyuio”,然后多次复制并粘贴此文本,直到达到限制。现在,从键盘应用程序按撤消将崩溃。我试图搜索但无法找到任何解决方案。
例外:
“由于未捕获的异常 'NSRangeException',正在终止应用程序,原因:'NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds'”
代码,我正在使用:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
if textField.text?.count >= 40 && string != ""{
return false
}
return true
}
请提供解决方案。
谢谢
挖掘几个小时后。我找到了这个的解决方案。
var textSize = 0
if range.length == 0 {
//adding
textSize = range.location + string.count
}else{
//removing from field
textSize = range.location - range.length
}
if textSize >= 50 {
return false
}else {
if (string.isEmpty && range.length > 0) {
textField.text = textField.text!.count > range.length ? String(textField.text!.dropLast(range.length)) : ""
return false
}
现在工作正常。
在 iPad 应用程序中遇到此错误。在文本字段键盘将出现。写任何文本,如“qwertyuio”,然后多次复制并粘贴此文本,直到达到限制。现在,从键盘应用程序按撤消将崩溃。我试图搜索但无法找到任何解决方案。 例外: “由于未捕获的异常 'NSRangeException',正在终止应用程序,原因:'NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds'”
代码,我正在使用:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
if textField.text?.count >= 40 && string != ""{
return false
}
return true
}
请提供解决方案。 谢谢
挖掘几个小时后。我找到了这个的解决方案。
var textSize = 0
if range.length == 0 {
//adding
textSize = range.location + string.count
}else{
//removing from field
textSize = range.location - range.length
}
if textSize >= 50 {
return false
}else {
if (string.isEmpty && range.length > 0) {
textField.text = textField.text!.count > range.length ? String(textField.text!.dropLast(range.length)) : ""
return false
}
现在工作正常。