Swift基础

swift中QMUITextView字数限制异常

2021-04-09  本文已影响0人  笑破天

设置了QMUITextView的maximumTextLength之后出现两个问题:
1、字符串中有汉字、英文、emoji表情的时候,字符个数和count不一致
2、拷贝粘贴的时候没走textViewDidChange方法,不会更新已输入字数显示

原因:input.maximumTextLength控制的是字符个数,和string.count不一致。
解决:把swift的String转为NSString然后用string.length即可。粘贴不走textViewDidChange,新加一个代理方法shouldChangeTextIn什么都不写即可。两脸迷惑(⊙_⊙)?

iOS中几种方法的计算结果
QMUI的计算结果:emoji是2个,中文1个(标点和汉字),英文1个(标点和字母)
char.utf8.count结果:emoji是4个,中文3个(标点和汉字),英文1个(标点和字母)
NSString.length结果:emoji是2个,中文1个(标点和汉字),英文1个(标点和字母)
String.count结果:emoji是1个,中文1个(标点和汉字),英文1个(标点和字母)

for index in text.indices {
      let char = content[index]
      print(char.utf8.count)
}

参考
关于UITextView的textViewDidChange回调没有调用的问题解决
iOS计算输入字符数

上一篇下一篇

猜你喜欢

热点阅读