2014-10-27 2 views
1

У меня есть UITextView, который позволяет некоторым RichTextEditing. Я хочу, чтобы всякий раз, когда пользователь нажимает на определенное местоположение текста, курсор должен перемещаться туда, и редактирование должно начинаться с этого места.Начать редактирование UITextView на пользовательском удаленном месте

Выпуск: Что происходит, когда я перетащить курсор в любое место по своему выбору и написать что-то курсор немедленно перемещается в конец текста UITextView и начинает писать. Я хочу, чтобы редактирование начиналось с пользовательского местоположения или местоположения курсора.

Ниже перечислены функции, которые я использую.

-(void) textViewDidBeginEditing{ 
    //Can set the cursor or selected Range of textView here or tap gesture recognizer required? 
    return true; 
} 
-(void) textViewDidEndEditing{ 
    return true; 
} 
-(void) textViewDidChangeTextInRange:(UITextView *) textView range:(NSMakeRange) range replacementText: (NSString *) text{ 
    //Sets attributed text of my TextView based on my input AccessoryView 
    if(textView.text.lenght > range.location){ 
     //This is my point of concern where I want to start the editing 
    } 
    return false; 
} 

Извините, у меня возникли ошибки в коде. Теперь у меня нет доступа к моему объективному коду. Это было написано, чтобы дать вам представление о том, что я делаю. Я нашел это, но не смог заставить его работать. Я использую UITextView, используя поле. how to move cursor in UITextField after setting its value

Просьба направлять меня.

ответ

0

Существует проблема с функциями Apple. Я добавил ссылку код здесь how to move cursor in UITextField after setting its value в моей функции

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
    //code from stackoverflow question 
} 

, но это не сработало. Затем я добавил тот же код в другую функцию и назвал его селектором от shouldChangeTextInRange, и он сработал !!!

Рабочий код:

- (void)setCursorToCorrectPosition 
{ 
    //code from stackoverflow question 
} 
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
    [self performSelector:@selector(setCursorToCorrectPosition) withObject:nil afterDelay:0.01]; 
}