您所需要做的就是从范围中获取子字符串:
let subStr = (str as NSString).substring(with: range)
然后你可以得到
utf8.count
属于
subStr
,或者在一行中完成所有操作:
let subCount = (str as NSString).substring(with: range).utf8.count
但为了你
shouldChangeTextIn
,您可以简单地执行以下操作:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
let newStr = (textView.text! as NSString).replacingCharacters(in: range, with: text)
if let charLimit = characterLimit {
return newStr.count <= charLimit
}
if let byteLimit = utf8EncodedByteLimit {
return newStr.utf8.count <= byteLimit
}
return false
}