2012-03-06 5 views
0

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

Как я могу управлять позицией курсора?

Благодаря

+0

ли вы имеете в виду, что, когда пользователь выбирает что-то еще, то выбирает textInput, позиция курсора сбрасывается до начала ввода текста? Я не понимаю, когда именно проблема происходит. – sch

ответ

1

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

Мой рабочий понял вашу проблему:

  • слушать событие SelectionChange
  • selectionAnchorPosition дать вам последнюю позицию
  • магазине это положение где-то во временной переменной
  • Что-то произошло, и вы поместите курсор в текстовое поле, где вы хотите (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>