переместить курсор на ввод текста - PullRequest
0 голосов
/ 06 марта 2012

Я использую Flex 4.5 Я использую контроль spark.components.TextInput. Значения текста могут изменяться динамически в соответствии с выбором пользователя. Проблема в том, что после того, как пользователь напишет что-нибудь textInput и изменит значение текста, позиция курсора возвращается к началу textInput, поэтому, если пользователь хочет продолжить, введите .text в textInput, ему сначала нужно переместить курсор к конец.

Как я могу контролировать положение курсора?

Спасибо

1 Ответ

1 голос
/ 27 апреля 2012

Привет, надеюсь, я правильно понял вашу проблему

Мой рабочий процесс :

  • прослушивание события selectionChange
  • selectionAnchorPosition даст вам последнееposition
  • сохранить эту позицию где-нибудь во временной переменной
  • Что-то случилось, и вы поместили курсор в текстовое поле, где хотите (button1_clickHandler)

Пример моего кода

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            [Bindable]
            private var pos:Number = 0;

            protected function textinput1_selectionChangeHandler(event:FlexEvent):void
            {
                pos = TextInput(event.target).selectionAnchorPosition;
            }

            protected function button1_clickHandler(pos:Number):void
            {
                ti.setFocus();  
                ti.selectRange(pos,pos);            
            }

        ]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout />
    </s:layout>

    <s:TextInput id="ti" text="abces"  selectionChange="textinput1_selectionChangeHandler(event)"/>

    <s:Label  text="{'lastCursorPos ' + pos}"/>

    <s:Button label="Set pos 1" click="button1_clickHandler(1)" />
    <s:Button label="Set pos 5" click="button1_clickHandler(5)" />
    <s:Button label="Set pos 15" click="button1_clickHandler(15)" />
</s:Application>
...