2009-02-02 8 views
5

Ich versuche, das Caret in einem Flex TextArea nach dem Anhängen von Text aus meinem Code an das Ende zu verschieben. Ich habe die Referenzdokumentation für TextArea und das ihr zugrunde liegende TextField gelesen, aber es scheint, dass keine Methode zur Verfügung steht, um dies zu behandeln.Wie programmierst du programmatisch den Caret einer Flex TextArea zum Ende?

Ein Ansatz, den ich ausprobiert habe, ist es, den Fokus auf den Textbereich zu setzen und ein KeyUp KeyboardEvent mit dem Schlüsselcode des Ereignisses auf die "Ende" -Taste zu senden, aber das funktioniert nicht.

Irgendwelche Ideen, wie man das macht?

Danke.

Antwort

8

Versuchen Sie, diese

textArea.selectionBeginIndex = textArea.length; 
textArea.selectionEndIndex = textArea.length; 
+0

Great! Das funktioniert perfekt, danke. Alles, was ich danach tun muss, ist textArea.setFocus() – Akinwale

0

Ich glaube, Sie direkt den Textbereich der Scrollbar mit

verticalScrollPosition : Number 
textArea.verticalScrollPosition(i); 
2

So stellen Sie den Cursor an einer beliebigen Stelle in ein Textfeld alle u tun müssen, können festlegen, ist

textArea.setSelection (beginIndex, endIndex); Wenn Sie den beginIndex & endIndex auf den gleichen Wert setzen (in Ihrem Fall textArea.text.length), wird das Caret an dieser Position platziert. Wenn Sie andere Werte festlegen, wird Text in diesem Bereich hervorgehoben.

0

@ Paul Stewart verticalScrollPosition- ist eine Eigenschaft, keine Methode, so dass Sie es ähnlich einem Feld verwenden, wie:

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

Der Vorteil davon über einen selection mit/selectionEndIndex gibt es Sie nicht haben einen Foulus setzen.

4

Für Menschen, für die Spark-Komponente Weg, um dies zu tun, Flex 4.5, verwenden selectRange(anchorIndex, activeIndex)

0

einfach den folgenden Code hinzufügen, nachdem ein Text in die TextArea- Zugabe:

textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;