(void)textViewDidChangeSelection:(UITextView *)textView
这个方法一般在实际开发中很少用到,当用户选择text view中的部分内容,或者更改文本选择的范围,或者在text view中粘贴入文本时,函数textViewDidChangeSelection:将会被调用。虽然它很少被使用,但是在某些业务场景下还是非常有用的。
比如阅读开发中的使用场景:长按文本中某内容,可选中该内容所在段落。
//这个代理是关键,方法是长按文本触发,返回textView各种属性,根据返回的range,可以计算获取UITextView的attributestring属性的起始位置和手指移动后的结束位置
- (void)textViewDidChangeSelection:(UITextView *)textView {
originlocation1=(int)textView.selectedRange.location;
if (textView.selectedRange.location>0&&textView.selectedRange.location!=self.myTextView.text.length) {
[self chooseOneparagraphloc:(long)textView.selectedRange.location Withlength:(long)textView.selectedRange.length];
}
}
//通过当前手指实现长按后返回的range,思路是向左遍历字符串找到第一个换行符的前一位字符,break,向右遍历字符串找到第一个换行符后break,通过获取的两个range继续计算 可以得到当前段落
-(void)chooseOneparagraphloc:(long )loc Withlength:(long)length;
网友评论