2012-03-06 2 views
0

J'utilise flex 4.5 J'utilise le contrôle spark.components.TextInput. Les valeurs du texte peuvent être modifiées dynamiquement en fonction de la sélection de l'utilisateur. Le problème est qu'après que l'utilisateur a écrit anythings le textInput et change la valeur du texte, la position du curseur retourne au début du textInput donc si l'utilisateur veut continuer à écrire .text dans textInput il doit d'abord déplacer le curseur sur la fin.Déplacer curseur étincelle entrée de texte

Comment contrôler la position du curseur?

Merci

+0

Voulez-vous dire que lorsque l'utilisateur choisit quelque chose d'autre, puis sélectionne le textInput, la position du curseur est réinitialisée au début de la saisie de texte? Je ne comprends pas quand exactement le problème se produit. – sch

Répondre

1

Salut espère que je compris votre problème correctement

Mon flux:

  • écouter l'événement selectionChange
  • selectionAnchorPosition vous donner la dernière position
  • magasin cette position quelque part dans une variable temp
  • Quelque chose arrive, et vous placez votre curseur dans le champ de texte où vous voulez (button1_clickHandler)

Mon exemple de code

<?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> 
Questions connexes