我为List组件(Flex 3.5)编写了一个自定义itemrenderer,它是一个包含Label和TextArea的VBox。到目前为止一切正常但我希望第一个itemrenderer中的TextArea获得焦点,以便在Tab键到List时立即变得可编辑。这是可能的,如果我能做到这一点?
我已经添加了一个事件监听器来选择索引0处的项目,但其中的textArea也应该集中在那一刻......
_list.addEventListener(FocusEvent.FOCUS_IN, onListFocusIn);
private function onListFocusIn(e:FocusEvent):void
{
_list.selectedIndex = 0;
}
答案 0 :(得分:1)
没有太多的事件。一种hackery方法是覆盖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