小编use*_*642的帖子

当窗口没有焦点时如何从控件中移除焦点?(否则当窗口再次获得焦点时它将恢复)

我需要在窗口没有焦点TextInput时移除焦点。Adobe Air但我找不到正常的方法来做到这一点。

这是一个示例应用程序:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx"

                       >
    <fx:Script>
        <![CDATA[
            protected function onFocusIn(event:FocusEvent):void{
                input.appendText('I');
            }

            protected function onFocusOut(event:FocusEvent):void{
                input.appendText('o');
            //  input.focusManager.deactivate();
            //  stage.focus = null;  
            //  focusManager.setFocus(input2);
            //  stage.focus = stage; 
            }

        ]]>
    </fx:Script>
    <s:VGroup>      
        <s:TextInput id="input" focusIn="onFocusIn(event)" focusOut="onFocusOut(event)" />
        <s:TextInput id="input2" /> 
    </s:VGroup>
Run Code Online (Sandbox Code Playgroud)

  1. stage.focus = null不起作用 -stage.focus已经是null当窗口没有焦点时,所以它不起作用。

  2. input.focusManager.deativate()确实可以,但这个管理器似乎用于其他控件,所以这不是一个好的选择。文档中说

    如果多个 IFocusManagerContainer 同时可见,则 SystemManager 会激活和停用 FocusManager。

    但在这个示例应用程序中,我有两个 TextInput,当我停用第一个 TextInput 的 focusManager 时,第二个 TextInput 不再恢复对 alt-tab 的焦点。 …

apache-flex air actionscript-3 focusmanager

2
推荐指数
1
解决办法
3078
查看次数

标签 统计

actionscript-3 ×1

air ×1

apache-flex ×1

focusmanager ×1