轻点设置UITextView选择

时间:2010-08-26 19:45:38

标签: iphone cocoa-touch uitextview

我有一个默认情况下不可编辑的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就可以将插入点放在顶部。

1 个答案:

答案 0 :(得分:0)

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

另一种选择可能是始终让TextView可编辑,并使用UITextViewDelegate的{​​{1}}方法。

但是,我从未做过任何这样的事情,所以请谨慎对待这些建议。