设置水龙头的UITextView选择

问题描述:

我有一个默认不可编辑的UITextView,以便数据检测器显示地址和电话号码。我希望能够让用户在文本视图中的任意位置单击,以将其设置为可编辑并将插入点放在该位置。不幸的是,我无法获得插入点,只需一次轻敲即可编辑文本视图(例如我正在尝试完成的任务,请在Notes.app中使用URL创建一个新注释。)设置水龙头的UITextView选择

我已经将子类UITextView并覆盖- (void)touchesBegan:withEvent:,以便检查文本视图是否可编辑。如果不是,我启用编辑。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if (!self.editable) 
    { 
    self.editable = YES; 
    } 

    [super touchesBegan:touches withEvent:event]; 
} 

我不确定但是从哪里那里继续刚才打电话becomeFirstResponder把插入点上方。

听起来像你可以设置属性selectedRange把光标放在你想要的位置。但是,您需要从点(在您的touchesBegan方法中)转换为NSRange值。

另一种选择可能是始终让您的TextView可编辑,并使用UITextViewDelegatetextViewShouldBeginEditing方法。

但是,我从来没有做过任何这样的事情,所以请采取一些盐的建议。