Question

I'm trying to move the caret in a Flex TextArea to the end after appending some text from my code. I've looked through the reference documentation for TextArea and its underlying TextField but it appears there is no method provided to handle this.

One approach I've tried is to set focus to the text area and dispatch a KeyUp KeyboardEvent with the event's key code set to the "End" key, but this doesn't work.

Any ideas on how to do this?

Thanks.

Was it helpful?

Solution

Try this

textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;

OTHER TIPS

For people looking for the Spark component way to do this, Flex 4.5, use selectRange(anchorIndex, activeIndex)

To set the caret at any position in a textArea all u need to do is

textArea.setSelection(beginIndex, endIndex);

if u set the beginIndex & endIndex to the same value (in your case textArea.text.length) the caret will be placed at that positon. If you set it to different values, text in that range will be highlighted.

I believe you can directly set the textarea's scrollbar with

verticalScrollPosition : Number
textArea.verticalScrollPosition(i);

@Paul Stewart verticalScrollPosition is a property not a method so you have to use it similar to a field, like:

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

The advantage of using it over a selectionBeginIndex/selectionEndIndex is there you do not have to set a foucus.

Simply add the following code after adding a text to the TextArea:

textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top