2

我有一个自定义(子类) ,其中继承UITextView了标准的所有属性。UITextView

用户可以编写、删除、剪切、复制、粘贴等。我想做的是将光标移动限制在文本视图中的特定位置,这样,用户可以更改光标位置(textView.selectedRange.location)仅到某一点,因为超出该点的文本应该是非用户可编辑的。textViewDidChangeSelection通过覆盖该方法,我已经成功处理了单击事件。但是长按时光标仍会移动到超出所需点的文本(当放大镜出现时)。

有没有办法在放大镜出现后限制光标移动,使其保持在所需的子范围内?

4

1 回答 1

1

终于解决了。

- (CGRect) caretRectForPosition:(UITextPosition *)position{

if (self.selectedRange.location > desiredLength)
    self.selectedRange = NSMakeRange(desiredLength, self.selectedRange.length);

return [super caretRectForPosition:position];
}

每次移动光标时都会调用此函数,无论在UITextView

于 2013-08-27T08:43:35.077 回答