根据网上其他的设置方法发现,当使用中文输入法时,还处于高亮状态未选择时,依旧会将高亮状态的文字计算为已输入的文字,从而导致,最后的几个字符无论如何都无法输入,故而使用以下方法来解决输入的文字还处在高亮未选择状态下不将文字计算在内。
extension xxxx: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) {
guard let text = textView.text else {return}
// 获取高亮文本 100为限制的字符数
if textView.markedTextRange == nil, text.count > 100 {
let head = text.startIndex
let end = text.index(text.startIndex, offsetBy: 100)
textView.text = String(text[head..<end])
}
}
}
通过以上的代理设置,就可以准确的将字数限制在设置的字数,而不会因为将输入状态中的文字计算内导致的限制错误。
网友评论