这两天公司做的项目,发布动态界面需求实现需要用到UITextView的首行缩进,之前没做过,正好记录下问题.

界面需求
一开始,做完之后,觉得大功告成了,才发现,系统键盘输入的时候一直是错乱的,就是输入中文的时候,中英文错乱,才发现,自己写了一个炸弹💣,在textDidChange 方法中一直不断的将attributedText赋值,导致了这个问题

中文错乱
![Uploading EAAB188F-A416-4011-8AC1-C48F1B1805EB_069061.png . . .]

问题所在
但是为了解决问题,就只能在初始化UITextview的时候直接将属性初始化,但是因为text为空,所以
self.attributedText = [[NSAttributedString alloc] initWithString:self.text attributes:attributes];
无效,试了下面的方法
self.text = @" ";//为了保证设置有效
//再设置 attributedText
self.attributedText = [[NSAttributedString alloc] initWithString:self.text attributes:textAttributes];
self.text = @"";//为了防止由于空格
深切的体会到,写代码的时候一定要知道自己写这行代码什么意思,不然后期可能后患无穷,也提醒自己,出门记得带脑子.
后期有时间,会把这种类型的输入框写成一个demo,供大家使用.
网友评论