Настройка выбора 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 помещает точку вставки вверху.


person Justin Williams    schedule 26.08.2010    source источник


Ответы (1)


Похоже, вы можете установить свойство selectedRange, чтобы поместить курсор в нужное место. Однако вам нужно будет перевести очки (в вашем touchesBegan методе) в значение NSRange.

Другой вариант - всегда иметь возможность редактирования TextView и использовать метод UITextViewDelegate textViewShouldBeginEditing.

Однако я никогда не делал ничего из этого, так что отнеситесь к этим предложениям с недоверием.

person livingtech    schedule 27.08.2010