设置水龙头的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可编辑,并使用UITextViewDelegate
的textViewShouldBeginEditing
方法。
但是,我从来没有做过任何这样的事情,所以请采取一些盐的建议。