¿Cómo mueves programáticamente el cursor de un Flex TextArea hasta el final?
-
20-08-2019 - |
Pregunta
Estoy tratando de mover el cursor en un Flex TextArea hasta el final después de agregar un texto de mi código. He revisado la documentación de referencia para TextArea y su TextField subyacente, pero parece que no se proporciona ningún método para manejar esto.
Un enfoque que he intentado es establecer el foco en el área de texto y enviar un KeyUp KeyboardEvent con el código de clave del evento establecido en " End " clave, pero esto no funciona.
¿Alguna idea sobre cómo hacer esto?
Gracias.
Solución
Prueba esto
textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;
Otros consejos
Para las personas que buscan la forma del componente Spark para hacer esto, Flex 4.5, use selectRange(anchorIndex, activeIndex)
Para establecer el cursor en cualquier posición en un área de texto, todo lo que necesita hacer es
textArea.setSelection (beginIndex, endIndex);
si configura el amplificador beginIndex &; endIndex al mismo valor (en su caso textArea.text.length) el cursor se colocará en esa posición. Si lo configura en valores diferentes, el texto en ese rango se resaltará.
Creo que puede configurar directamente la barra de desplazamiento del área de texto con
verticalScrollPosition : Number
textArea.verticalScrollPosition(i);
@Paul Stewart verticalScrollPosition es una propiedad, no un método, por lo que debe usarla de manera similar a un campo, como:
var newPosition:NUmber = 1;
textArea.verticalScrollPosition = newPosition;
La ventaja de usarlo sobre una selectionBeginIndex / selectionEndIndex es que no tiene que establecer un foucus.
Simplemente agregue el siguiente código después de agregar un texto a TextArea:
textArea.verticalScrollPosition = textArea.maxVerticalScrollPosition;