2010-03-17 66 views
3

我有一個組合框實現如下 - 根據可編輯組合框中的用戶輸入(最少2個字符),數據提供者刷新並下拉打開,顯示不同的數據集作爲用戶輸入變化。如何設置flex組合框光標位置

問題是,下拉打開後,光標移回到開始位置。因此,例如,用戶鍵入「ab」,並且想要鍵入「c」以形成搜索字符串「abc」。由於光標將其位置重新設置爲0,搜索字符串會變成「cab」。下面是我已經嘗試過(不起作用):textInput.mx_internal :: getTextField()。setSelection(index,index);

其中index =用戶輸入的長度。這會從索引到索引(它實際上取消選擇文本)中選擇文本,並且應該將光標放在最後。

有什麼想法?

回答

4

你正在做正確的事情。您只需確保TextInput在之前已將焦點設置爲選擇索引。

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 


    <mx:VBox> 

     <mx:TextInput id="input" /> 

     <mx:Button label="set cursor" click="setCursor()" /> 

    </mx:VBox> 

    <mx:Script> 
     <![CDATA[ 

      public function setCursor():void { 
       var index:Number = input.text.length; 
       input.setFocus(); 
       input.mx_internal::getTextField().setSelection(index, index); 
      } 

     ]]> 
    </mx:Script> 

</mx:Application> 
0

如果你還因爲轉移到星火(彎曲4)

input.selectRange(index, index);