Настройка UITextView выбора на кран - PullRequest
0 голосов
/ 26 августа 2010

У меня есть 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 голосов
/ 27 августа 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...