iOS原生键盘中文联想遇到的问题

UITextView、UITextField在使用iOS原生键盘输入中文会有个蛋疼的问题,下面我举个开发中遇到的例子,同时也给自己做个笔记。

假如一个UITextView,设定最大输入长度是5,当用户将键盘调成输入中文,如图所示,当用户已经输入了饿f f

这个时候用户继续输入一个f,请看断点,饿f flength是4,接收一个f,长度是5,shouldChangeTextInRange这个代理方法return yes,表示可以接受本次输入的f,

到此,以上看起来都完全符合科学,下面即将出现蛋疼的问题,请关注textViewDidChange方法,此方法是成功接收了输入的字符串后才会调用的,这里有个蛋疼的问题,饿f f在这个基础上,由于iOS原生键盘输入中文的时候,有联想功能,并且预先将拼音写入textView,苹果在接收最后输入的f的时候,同时自动在饿f f后面补了个空格,导致长度变成了6,超过了我想要的最大限度长度

目前这个我的解决方法就是在textViewDidChange代理方法中强制截取了一下,虽然满足了业务需求,但是总感觉不科学。如果哪位大神有更好的方案,求指点,互相学习。

你可能感兴趣的:(iOS原生键盘中文联想遇到的问题)