DataGrid的TextInput无法获取焦点问题

今天在对DataGrid的进行数据编辑是利用渲染器加入了TextInput空间,但是只要点中就会出现

scroll的焦点获取失败即:

有一个困扰多时的问题:
flex4,spark组件的
datagrid的itemrenderer中使用textinput组件,鼠标点击后报错:
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
        at spark.components::Scroller/focusInHandler()
        at flash.display::Stage/set focus()
        at flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::setFocus()
        at flashx.textLayout.container::ContainerController/mouseDownHandler()
        at flashx.textLayout.container::TextContainerManager/mouseDownHandler()
        at spark.components.supportClasses::RichEditableTextContainerManager/mouseDownHandler()
        at flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::requiredMouseDownHandler()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.core::UIComponent/dispatchEvent()
        at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]

 一开始以为是DataGrid的原因各种查找,虽然也利用这个查找过程学会了很多DataGrid的知识但是结果,

却和DataGrid无关的,是PopUpAnchor的问题,

   我这个DataGrid是PopUp弹出的,最外层使用的是Group但是group没有实现mx.managers.IFocusManagerContainer这个接口,对于这个接口官方说明是:

The IFocusManagerContainer interface defines the interface that containers implement to host a FocusManager. The PopUpManager automatically installs a FocusManager in any IFocusManagerContainer it pops up.

 就是实现了这个接口的容器,PopUpManager会自动注入一个FocusManager实例进去,但是坑爹事Group并没有实现,而且Group是渲染器和其他的组件最常用的容器,所以会报出如果获取FocusManager 即 focusManager=null,只需改成实现IFocusManagerContainer这个接口的容器就可以了,这里我用的

BorderContainer,改了之后就不会再报错了,坑爹的玩意啊 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值