【问题标题】:Setting Focus on a List ItemRenderer with TextArea inside?将焦点设置在带有 TextArea 的 List ItemRenderer 上?
【发布时间】:2010-10-29 14:29:00
【问题描述】:

我为 List 组件 (Flex 3.5) 编写了一个自定义 itemrenderer,它是一个带有 Label 和 TextArea 的 VBox。到目前为止一切正常,但我希望第一个 itemrenderer 中的 TextArea 能够接收焦点,以便在单击列表时立即变得可编辑。这可能吗?如果我将如何实现这一目标?

我已经添加了一个事件侦听器,它选择索引 0 处的项目,但其中的 textArea 也应该在那一刻被聚焦...

_list.addEventListener(FocusEvent.FOCUS_IN, onListFocusIn);

private function onListFocusIn(e:FocusEvent):void
{
 _list.selectedIndex = 0;
}

【问题讨论】:

    标签: apache-flex actionscript-3 list focus itemrenderer


    【解决方案1】:

    没有太多的事件。一种骇人听闻的方法是为您的 itemRenderer 覆盖 updateDisplayList

    <mx:Script>
        <![CDATA[
            import mx.controls.listClasses.ListBase;
            import mx.managers.FocusManager;
    
            override protected function updateDisplayList(unscaledWidth:Number, 
                                                          unscaledHeight:Number):void{
                super.updateDisplayList(unscaledWidth, unscaledHeight);
    
                if(ListBase(owner).isItemSelected(data)){
                    focusManager.setFocus(mytext);
                 }
            } 
        ]]>
    </mx:Script>
    

    更多详情 http://butterfliesandbugs.wordpress.com/2007/06/25/how-to-know-when-my-itemrenderer-is-selected/

    http://cookbooks.adobe.com/post_How_to_know_when_an_ItemRenderer_is_selected-5322.html

    【讨论】:

    • 在 Flex 4 中有没有更好的方法来使用 spark 组件?
    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2011-01-13
    • 2018-08-22
    • 2016-12-06
    • 2018-10-05
    相关资源
    最近更新 更多