2012-05-14 2 views
1

У меня есть текстовое поле, на котором отображается пользовательская клавиатура, содержащая цифры 0-9 и кнопку возврата. Я могу удалить текст в конце, а также из середины строки. Но когда я удаляю текст из середины, курсор переходит в конечную позицию. Я хочу, чтобы курсор оставался в том же положении, где он был при удалении текста. Пожалуйста, ответьте как можно скорее и заблаговременно.Пользовательская позиция клавиатуры для курсора

ответ

4

Сначала получите начальное положение курсора (или конец выбранного диапазона):

UITextRange *selectedRange = [textField selectedTextRange]; 
NSInteger offset = [textField offsetFromPosition:textField.endOfDocument toPosition:selectedRange.end]; 

После изменения текста в текстовом поле, в сбросить позицию курсора, используя UITextPosition следующим образом:

UITextPosition *newPos = [textField positionFromPosition:textField.endOfDocument offset:offset]; 
textField.selectedTextRange = [textField textRangeFromPosition:newPos toPosition:newPos]; 
+0

большое спасибо, я очень доволен этим кодом ... –

+0

Я хочу использовать расположение курсора для языка RTL, который должен быть однородным во всех приложениях. Как я могу это сделать. Я создаю пользовательскую клавиатуру RTL. –

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