Мне нужно расположить курсор UITextField в той же позиции, что и другое предыдущее текстовое поле. Я получаю позицию курсора в первом текстовом поле как nint index = txtToField.GetOffsetFromPosition(txtToField.BeginningOfDocument, txtToField.SelectedTextRange.Start);
, которая правильно получает количество символов в начале текстового поля, в котором находится мой курсор. После некоторого исследования и использования вопроса ниже:
Установка позиции курсора UITextField
Я попытался реализовать решение вопроса для установки позиции курсора в текстовом поле, используя индекс, который я получил ранее. Это не работает, и после создания текстового поля первым респондентом и запустив:
txtTo.BecomeFirstResponder();
UITextPosition positionSet = txtTo.GetPosition(txtTo.BeginningOfDocument, position);
txtTo.SelectedTextRange = txtTo.GetTextRange(positionSet, positionSet);
Он автоматически помещает курсор в конец UITextField. Кроме того, я попытался проверить, работает ли метод SelectedTextRange
, как ожидалось, однако при попытке установить весь текст в текстовом поле как выбранный:
txtTo.BecomeFirstResponder();
txtTo.SelectedTextRange = txtTo.GetTextRange(txtTo.BeginningOfDocument, txtTo.EndOfDocument);
Он также автоматически помещает курсор в конец UITextField, что является стандартным поведением для BecomeFirstResponder()
. SelectedTextRange
не работает в этой текущей версии Xamarin?
Я использую версию 7.6.10 (сборка 27) Xamarin и Xamarin.iOS версии 12.0.0.15.