Сохранить позицию курсора в нижней строке в textView Swift - PullRequest
0 голосов
/ 12 июня 2019

Мне нужно создать пользовательский интерфейс, в котором, когда пользователь вводит текст, область курсора / ввода текста остается в середине страницы, а вновь набранный текст перемещается вверх и вниз по верху страницы.

Я попытался установить положение курсора в нижней части текстового представления, которое охватывает 0,6 суперпредставления, но это не работает (предположительно, потому что у него нет текста?). Это отличный ответ для общего размещения курсора, но мой вариант использования не учитывается.

Код, который я использовал, чтобы попытаться поместить курсор в конец текстового представления:

func setCursorPosition() {
        let newPosition = textViewOutlet.endOfDocument
        textViewOutlet.selectedTextRange = textViewOutlet.textRange(from: newPosition, to: newPosition)
    }

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

Эффект, который я пытаюсь создать, будет выглядеть так:

enter image description here

довольно сложная проблема, я думаю - есть идеи?

1 Ответ

0 голосов
/ 14 июня 2019

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

Затем я скорректировал ограничения (помогли этот ответ ), чтобы зафиксировать пространство в нижней безопасной области, но не указал высоту.

Таким образом, текстовое представление динамически изменяет размер, но в направлении вверх. Когда он достигает градиента, который я поместил над рамкой, он начинает исчезать.

Отлично (я также отключил прокрутку, чтобы сделать эту работу)

Главный совет - если что-то кажется действительно сложным, возможно, существует другой способ решения проблемы!

...