关于textView中textViewDidChangeSelection方法的研究

(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;

你可能感兴趣的:(关于textView中textViewDidChangeSelection方法的研究)