2010-08-26 4 views
0

У меня есть 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 ставит точку вставки в верхней части.

ответ

0

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

Другой вариант может заключаться в том, чтобы всегда иметь редактируемый текст и использовать метод UITextViewDelegatetextViewShouldBeginEditing.

Однако я никогда не делал этого, поэтому принимайте эти предложения с солью.

Смежные вопросы