flex恢复失去焦点

时间:2009-11-27 11:44:53

标签: flex actionscript-3 air

我有一个带文本框的自定义组件&一个按钮 如

<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>

我使用此自定义组件作为datagrid的itemEditor

我有焦点问题。我需要在弹出按钮项目单击后将焦点设置到文本 场景是我在源文本中键入文本。如果我转到弹出按钮并单击任何项​​目,焦点将移动到弹出按钮,我无法在焦点丢失时输入文本。

我需要在弹出按钮项目选择后将焦点设置回源代码,以便我可以继续输入。 目前我需要点击文本中的增益,然后我就可以输入。

3 个答案:

答案 0 :(得分:0)

source.setFocus()

答案 1 :(得分: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>

答案 2 :(得分:0)

可以帮助你

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