在UITextView实现的发布框中,我们需要对一些特殊字符进行处理,比如输入 @ 调起好友选择列表,比如 输入 # 插入话题列表 等,这些逻辑的实现可以放在如下回调方法里
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
// text 表示新输入的字符,可能为@"",range 表示光标的范围
这里需要注意的有以下几点:
- 在iOS 9 以下,如果点击中文联想输入,不会调用该方法,为了防止这种情况,可以把所有的逻辑都放在 textViewDidChange 里进行处理;
- 如果传入的 text.length == 0, 表示现在在进行删除操作,我们根据具体的业务逻辑进行具体处理。