采用方法:代理(delegate)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text
参数解释
-
textView :The text view containing the changes. (目标对象)
-
range:
- 当前选中的范围
- 如果没有选择任何,代表光标所在位置;
- 如果用户按下删除键,选择的范围就是光标前的一个字符(使用@“”字符串替换)
-
text :将要被插入的文本
-
返回值
如果是YES, 用text 替换range部分
如果是NO,不替换 -
什么时候调用:无论用户什么时候输入新字符或者删除已存在的字符,Text View都会调用这个方法。可以选择是否实现这个方法。你可以在文本被提交到Text View里面之前把它替换掉。例如,拼写检查器可以使用这个方法把写错的单词替换成正确的。
字符串预计长度:
现在长度+新增长度(text的长度-range的长度)
特例(中文输入)
- 每点击一个字符,均为调用一次该方法
- 用户选择需要的汉字,才用相应汉字替换保存在textView.text中的拼音字母
- 如果用户未选择汉字或空格(认为选择第一个汉字),而按下“确认”按钮,就直接将保存的拼音字母写入textView.text。
网友评论