2010-10-29 52 views
1

我已经为一个List组件(Flex 3.5)写了一个自定义的itemrenderer,它是一个内部包装了Label和TextArea的VBox。到目前为止所有的工作都很好,但是我希望第一个itemrenderer中的TextArea能够接收焦点,这样它在标签列表上即时变为可编辑。这是可能的,如果我将如何实现这一目标?将焦点设置在带有TextArea的列表ItemRenderer中?

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

_list.addEventListener(FocusEvent.FOCUS_IN, onListFocusIn); 

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

回答

1

没有太多的事件的那。一个两轮牛车办法做到这一点是重写为的updateDisplayList您的itemRenderer上 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

+0

感谢Faheem

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

更多详细信息!那个技巧很好地完成了这项工作! – BadmintonCat 2010-10-31 03:44:30

+1

有没有更好的方式来做到这一点与Flex 4中的火花组件? – Randalfien 2012-11-20 12:43:09