初步确定:
查看了YYTextView的源码, 根据问题描述主要是光标的问题
断点调试过程中
主要查看下面这个私有方法的实现
- (void)_replaceRange:(YYTextRange )range withText:(NSString )text notifyToDelegate:(BOOL)notify
如下面的代码
在计算完光标的位置之后,我的理解是进行了一遍光标校验操作,通过断点,发现计算出来的光标位置在这里发生了改变。
点击进去查看
_correctedTextRange
的方法实现
继续查看
_correctedTextPosition
最终我的代码执行到下图红线部分
这时候我查看_innerText的内容是Hel,是联想词之前的内容
回到开始的方法里面,查看源码。可以发现_innerText的内容添加是在校验光标之后的才进行处理,显而易见,问题就是在内容没有添加之前,进行光标的校验,并修改