2010-10-29 57 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