我有一个默认情况下不可编辑的UITextView,以便数据检测器显示地址和电话号码。我希望能够让用户在文本视图中的任意位置单击以将其设置为可编辑并将插入点放在那里。不幸的是,我无法获得插入点,只需单击即可编辑文本视图(例如我正在尝试完成的内容,在Notes.app中创建一个带URL的新注释。)
我已经将UITextView子类化并覆盖- (void)touchesBegan:withEvent:
,以便检查文本视图是否可编辑。如果不是,我启用编辑。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (!self.editable)
{
self.editable = YES;
}
[super touchesBegan:touches withEvent:event];
}
我不确定从那里开始,因为只需调用becomeFirstResponder
就可以将插入点放在顶部。
答案 0 :(得分:0)
听起来你可以设置属性selectedRange
以将光标放在你想要的位置。但是,您需要将点数(在touchesBegan
方法中)转换为NSRange
值。
另一种选择可能是始终让TextView可编辑,并使用UITextViewDelegate
的{{1}}方法。