Подтвердить что ты не робот

Получение позиции курсора в UITextView на iPhone?

У нас есть UITextView в нашем приложении для iPhone, которое доступно для редактирования. Нам нужно вставить некоторый текст в позицию курсора, когда пользователи нажимают некоторые кнопки на панели инструментов, но не могут найти документально подтвержденный (или недокументированный) метод поиска текущего местоположения курсора.

Есть ли у кого-нибудь идеи или кто-то еще достиг чего-то подобного?

4b9b3361

Ответ 1

Как сказал дрюх, вы можете использовать UITextView selectedRange, чтобы вернуть точку вставки. Длина этого диапазона всегда равна нулю. Пример ниже показывает, как это сделать.

NSString *contentsToAdd = @"some string";
NSRange cursorPosition = [tf selectedRange];
NSMutableString *tfContent = [[NSMutableString alloc] initWithString:[tf text]];
[tfContent insertString:contentsToAdd atIndex:cursorPosition.location];
[theTextField setText:tfContent];
[tfContent release];

Ответ 2

Используйте свойство UITextView selectedRange, чтобы найти точку вставки, когда текстовое представление является первым ответчиком. В противном случае, когда представление не находится в фокусе, это свойство возвращает NSNotFound. Если вам нужно знать позицию курсора в этом случае, рассмотрите подклассификацию UITextView и переопределите метод canResignFirstResponder, где вы можете сохранить позицию курсора в переменной-члене.

Ответ 3

Вы пробовали UITextView.selectedRange? Он возвращает NSRange, элемент местоположения которого должен указать вам, где находится курсор.