2009-11-27 41 views
0

我有一個文本框&一個poup按鈕 一個自定義組件柔性奪回失去焦點

<mx:HBox> 
    <mx:Text id="source" height="100%" width="40%" data="my text" /> 
    <mx:VBox backgroundAlpha="0" height="100%" borderThickness="0"> 
     <mx:PopUpButton enabled="true" id="editButton" width="40" icon="@Embed('assets/images/Legends/editIcon.png')" 
      initialize="popUpButton_initialize()" 
      popUp="{actionMenuEdit}" 
      height="19" toolTip="Edit at segment"/> 
    </mx:VBox> 
</mx:HBox> 

我使用這個自定義組件作爲的itemEditor爲DataGrid

我有一個焦點問題。彈出式按鈕後,我需要將焦點設置爲文本itemclick 這種情況是我在源文本中輸入文本。如果我去彈出按鈕並單擊任何項​​目,焦點將移動到彈出按鈕,並且由於焦點丟失,我無法輸入文本。

我需要後彈出按鈕商品選擇將焦點設置回源代碼,這樣我可以繼續輸入。 此刻我需要點擊文字中的增益,然後才能夠輸入。

回答

0
source.setFocus() 
+0

感謝Amarghosh但 我試過,但它不管用。如果我給空間,那麼我可以看到突出顯示的彈出按鈕,如果我按Ctrl +向下箭頭,然後打開popupbutton菜單。看來,焦點仍然在popupbutton上。 – gauravFlex 2009-11-27 14:10:38

+0

你從哪裏調用'source.setFocus()'?從彈出式按鈕的關閉事件處理程序中執行它 – Amarghosh 2009-11-27 14:45:23

0

您將需要爲彈出按鈕的更改事件添加處理程序,該按鈕將焦點設置爲文本框。

這將是這樣的:

this.focusManager.setFocus(source); 

或在你的榜樣:

<mx:HBox> 
    <mx:Text id="source" height="100%" width="40%" data="my text" /> 
    <mx:VBox backgroundAlpha="0" height="100%" borderThickness="0"> 
     <mx:PopUpButton enabled="true" id="editButton" width="40" icon="@Embed('assets/images/Legends/editIcon.png')" 
       initialize="popUpButton_initialize()" 
       popUp="{actionMenuEdit}" 
       change="{this.focusManager.setFocus(source)}" 
       height="19" toolTip="Edit at segment"/> 
    </mx:VBox> 
</mx:HBox> 
+0

更改事件可能不適合彈出按鈕,但它適用於組合框。您可能需要更改會觸發setFocus的事件以滿足您的需求。 – robmcm 2009-12-08 15:04:18

0

可b。這種幫助ü

if (flexApplication != "undefined") flexApplication.focus();