2009-02-02 27 views
5

Sto provando a spostare il cursore in Flex TextArea alla fine dopo aver aggiunto del testo dal mio codice. Ho esaminato la documentazione di riferimento per TextArea e il suo TextField sottostante, ma sembra che non ci sia alcun metodo per gestirlo.Come si sposta a livello di codice il cursore di un Flex TextArea fino alla fine?

Un approccio che ho provato è quello di mettere a fuoco l'area di testo e inviare un KeyUp KeyboardEvent con il codice chiave dell'evento impostato sul tasto "Fine", ma questo non funziona.

Qualche idea su come fare questo?

Grazie.

risposta

8

Prova questa

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

Grande! Funziona perfettamente, grazie. Tutto quello che devo fare dopo questo è textArea.setFocus() – Akinwale

0

Credo che si può impostare direttamente barra di scorrimento del textarea con

verticalScrollPosition : Number 
textArea.verticalScrollPosition(i); 
2

Per impostare il punto di inserimento in qualsiasi posizione in un textArea tutto u bisogno di fare è

textArea.setSelection (beginIndex, endIndex);

se si imposta initIndex & endIndex sullo stesso valore (nel caso textArea.text.length) il cursore verrà posizionato in tale posizione. Se lo si imposta su valori diversi, il testo in quell'intervallo verrà evidenziato.

0

@ Paolo Stewart verticalScrollPosition è una proprietà non un metodo quindi bisogna usarla simile a un campo, come:

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

Il vantaggio di utilizzare sopra un selectionBeginIndex/selectionEndIndex è lì non si dispone di per impostare un foucus.

4

per chi cerca il modo componente Spark per fare questo, Flex 4.5, utilizzare selectRange(anchorIndex, activeIndex)

0

sufficiente aggiungere il seguente codice dopo l'aggiunta di un testo al TextArea:

textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;