Как программно переместить каретку Flex TextArea до конца? - PullRequest
6 голосов
/ 02 февраля 2009

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

Один из подходов, которые я попробовал, - установить фокус на текстовую область и отправить KeyUp KeyboardEvent с кодом клавиши события, установленным на клавишу «Конец», но это не работает.

Есть идеи, как это сделать?

Спасибо.

Ответы [ 6 ]

9 голосов
/ 02 февраля 2009

Попробуйте это

textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;
4 голосов
/ 22 февраля 2012

Для людей, которые ищут компонент Spark, Flex 4.5, используйте selectRange(anchorIndex, activeIndex)

2 голосов
/ 17 июля 2009

Чтобы установить каретку в любой позиции в текстовой области, все, что вам нужно сделать, это

textArea.setSelection (beginIndex, endIndex);

если вы установите для beginIndex & endIndex одинаковое значение (в вашем случае textArea.text.length), каретка будет размещена в этой позиции. Если вы установите для него другие значения, текст в этом диапазоне будет подсвечен.

0 голосов
/ 24 марта 2012

Просто добавьте следующий код после добавления текста в TextArea:

textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;
0 голосов
/ 17 марта 2010

@ Paul Stewart verticalScrollPosition - это свойство, а не метод, поэтому вы должны использовать его подобно полю, например:

var newPosition:NUmber = 1;
textArea.verticalScrollPosition = newPosition;

Преимущество использования его перед selectionBeginIndex / selectionEndIndex заключается в том, что вам не нужно устанавливать фукус.

0 голосов
/ 13 февраля 2009

Полагаю, вы можете напрямую установить полосу прокрутки текстовой области с помощью

verticalScrollPosition : Number
textArea.verticalScrollPosition(i);
...