views:

2845

answers:

4

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.

+6  A: 

Try this

textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;
Chetan Sastry
Great! This works perfectly, thanks. All I have to do after this is textArea.setFocus()
Akinwale
A: 

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

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

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.

A: 

@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.

Szymon Sasin