设置了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)
}
网友评论