Flex 4中 弹出窗口focusManager值为null的解决办法
纠结了几天的问题终于解决了。我的代码结构是这样的,在一个主窗口中弹出一个模态子窗口,该子窗口结构(大概结构,并非完全代码)mxml代码如下: <s:group> <mx:TabNavigator> <s:NavigatorContent> <s:TextInput/> </s:NavigatorContent> <s:NavigatorContent/> </mx:TabNavigator> </s:group> 当点击弹出窗口以后,获取到的focusManager为null。后来经过查看国外的一些资料及api发现,应该是弹出窗口需要实现IFocusManagerComponent 参考http://eastmond.org/blog/?tag=popupmanager IFocusManagerComponent的API中有一段话,也提到了这一点: IFocusManagerComponent 接口用于定义一些接口,可获得焦点的组件必须实现这些接口才能从 FocusManager 获得焦点。UIComponent 类中提供了此接口的基本实现,但 UIComponent 并不实现完整的 IFocusManagerComponent 接口,因为部分 UIComponent 无需获得焦点。因此,要使 UIComponent 派生的组件成为一个可获得焦点的有效组件,只需将“implements IFocusManagerComponent”添加到类定义即可。 再经过查看s:group,并未实现IFocusManagerComponent,而TabNavigator则实现了TabNavigator,因此我尝试将上面的代码去掉了外层的s:group改成(大概): <mx:TabNavigator> <s:NavigatorContent> <s:TextInput/> </s:NavigatorContent> <s:NavigatorContent/> </mx:TabNavigator> 则focusManager不再为null,运行正常了。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |