我有一个自定义ItemRenderer,它在3个面板中显示5个文本输入:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox 
    xmlns:mx="http://www.adobe.com/2006/mxml"
    height="300"
    width="800"
    creationComplete="onCreationComplete()"
>
    <!-- code-behind -->
    <mx:Script source="ChainListRenderer.mxml.as" />

    <mx:Label text="{data.title}" fontSize="25" fontWeight="bold" width="100%" textAlign="center" />
    <mx:HBox>
        <mx:Panel id="triggerPanel" title="Trigger" width="260">
            <mx:VBox id="tpBoxes" width="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
                <mx:TextInput id="trigger1" width="100%" textAlign="left" tabIndex="0" tabEnabled="true" />
                <mx:TextInput id="trigger2" width="100%" textAlign="left" tabIndex="1" tabEnabled="true" />
                <mx:TextInput id="trigger3" width="100%" textAlign="left" tabIndex="2" tabEnabled="true" />
                <mx:TextInput id="trigger4" width="100%" textAlign="left" tabIndex="3" tabEnabled="true" />
                <mx:TextInput id="trigger5" width="100%" textAlign="left" tabIndex="4" tabEnabled="true" />
            </mx:VBox>
        </mx:Panel>
        <mx:Panel id="linkPanel" title="Link" width="260">
            <mx:VBox id="lpBoxes" width="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
                <mx:TextInput id="link1" width="100%" textAlign="left" tabIndex="5" tabEnabled="true" />
                <mx:TextInput id="link2" width="100%" textAlign="left" tabIndex="6" tabEnabled="true" />
                <mx:TextInput id="link3" width="100%" textAlign="left" tabIndex="7" tabEnabled="true" />
                <mx:TextInput id="link4" width="100%" textAlign="left" tabIndex="8" tabEnabled="true" />
                <mx:TextInput id="link5" width="100%" textAlign="left" tabIndex="9" tabEnabled="true" />
            </mx:VBox>
        </mx:Panel>
        <mx:Panel id="answerPanel" title="Answer" width="260">
            <mx:VBox id="apBoxes" width="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
                <mx:TextInput id="answer1" width="100%" textAlign="left" tabIndex="10" tabEnabled="true" />
                <mx:TextInput id="answer2" width="100%" textAlign="left" tabIndex="11" tabEnabled="true" />
                <mx:TextInput id="answer3" width="100%" textAlign="left" tabIndex="12" tabEnabled="true" />
                <mx:TextInput id="answer4" width="100%" textAlign="left" tabIndex="13" tabEnabled="true" />
                <mx:TextInput id="answer5" width="100%" textAlign="left" tabIndex="14" tabEnabled="true" />
            </mx:VBox>
        </mx:Panel>
    </mx:HBox>
</mx:VBox>

不幸的是,当用作ItemRenderer时,即使使用上面的tabIndex值,文本输入之间的选项卡也不起作用.如果我将此代码复制到自己的MXML应用程序,则文本输入之间的选项卡按预期工作.

有谁知道在这种情况下如何恢复标签?如果我必须在没有这么简单的可用性元素的情况下发布这个应用程序,那将是一种耻辱.

我想我可能需要实现mx.managers.IFocusManagerComponent,但我找不到任何关于如何做到这一点的例子,FocusManager docs也没有帮助.

解决方法

我使用mx:VBox作为我的数据网格的rendererIsEditor =“true”的自定义itemRenderer,我也遇到了Tab键顺序问题.

我想到的是itemRenderer需要实现IFocusManagerComponent,以便主应用程序的FocusManager()能够正确地选中它.我尝试实现该接口:

<?xml version="1.0"?>
<mx:VBox implements="mx.managers.IFocusManagerComponent" ...>
 [the rest of my itemRenderer code]
</mx:VBox>

……事实证明,要实现很多接口函数,结果相当复杂.

但在我的情况下,我很幸运;我的itemRenderer中只有一个TextInput元素(其余的只是自定义代码,验证器和格式化程序)所以我将我的itemRenderer从mx:VBox转换为mx:TextInput(已经实现了IFocusManagerComponent):

<?xml version="1.0"?>
<mx:TextInput ...>
 [the rest of my itemRenderer code]
</mx:TextInput>

瞧!我的标签订单问题已修复.

我认为对于那些拥有更复杂的itemRenderers的人来说,你需要在你的类中完全实现IFocusManagerComponent接口…这可能是好的,因为它看起来会告诉flex如何通过itemRenderer自定义tab领域.或者您可以将顶级标记更改为已实现接口的内容,例如:您可以将mx:VBox嵌套在以下内容中:

<mx:Container focusIn="FocusManager.setFocus(trigger1)">

……也许它有用吗?代码比我更复杂的人应该试试看看会发生什么.

Flex ItemRenderer可防止在文本输入之间使用Tab键的更多相关文章

  1. android – EditText没有收到TAB键事件 – stock soft vk

    如果是这样,此代码将使用Tab键.如果是这种情况,那么您可能想要使一些项目不可聚焦或考虑另一种设计选项.

  2. DOMXML函数笔记

    >因此需要改造成这样,可能需要*utf8_encode()utf8_decode()函数进行处理**函数列表*stringdomxml_version返回domxml的版本号*objectxmldoc从字符串创建XML的Domdocument对象*objectxmldocfile从文件创建XML的Domdocument对象*objectxmltree解析xml文档,返回树状结构,不能用domxml函数改变*resourcedomxml_add_root添加根节点*stringdomxml_dumpmem将

  3. ubuntu – gnome-terminal中Emacs中的Ctrl tab键绑定问题

    我希望能够在Emacs中的两个缓冲区之间前后翻转,就像我可以在其他一些编辑器中的标签之间切换一样.以下CtrlTAB键绑定在XEmacs中运行良好:但是,当我使用“emacs-nw”打开Emacs时,它不起作用.找到thislink后–我想也许我想要的是不可能的?显然,在终端中向“TAB”的ASCII字符添加控制修饰符是没有意义的.然而,如果通过窗口系统,Emacs可以看到您按CtrlTAB作为使用控制修饰符,可以在.emacs文件中表示为C-或或[].是否有解决此问题的解决方法?

  4. ubuntu – 什么是MX记录以及如何为具有多个域的邮件服务器配置此记录?

    在我的基于Ubuntu10.4的虚拟服务器上,我想发送和接收多个域的电子邮件.作为第一步,似乎我必须正确配置MX记录.因为我对此很陌生:什么是MX记录?对于处理domain1.com,domain2.com的邮件服务器,它们看起来如何?

  5. Ubuntu终端tab键补全不了

    环境Ubuntu情景在Ubuntu系统下useradd一个新的用户,切换到该用户时,发现终端命令行下tab键补全不了解决谷歌发现是用useradd命令创建用户时没有指定shell的路径$useraddtab-s/bin/bash现在我已经创建了tab用户,我们可以通过修改/etc/passwd文件来解决tab键不能补全问题最后重启电脑就可以了

  6. centos中配置python的tab键自动补全功能

    centos中配置python的tab键自动补全功能一、首先打开python,观察python的安装路径[root@localhost~]#pythonPython3.6.2(default,Aug142017,22:12:34)[GCC4.8.520150623(RedHat4.8.5-11)]onlinuxType"help","copyright","credits"or"license"f

  7. 在从Exchange 2010到365的转换迁移期间,如何处理桌面客户端?

    或者他们可以简单地删除旧的和旧的一切将立即同步到新的?

  8. mx-record – 如果PHP mail()邮件服务器不是FROM域的MX,会出现任何问题吗?

    假设我有这种情况:我的电子邮件地址me@company.com的邮件服务器托管在我的办公室.我的网站company.com由第三方网络托管公司托管.在我的网站上,我创建了一个使用FROM,TO,SUBJECT,BODY并使用PHPmail()发送给客户.由于Web服务器是第三方,PHPmail()使用localhost邮件服务器.我认为我的邮件将到达客户的邮件服务器并显示为“伪造”或垃圾邮件.我需要做些什么来确保我的邮件看起来合法,并且收到的邮件不会发送到第三方网络托管服务商?

  9. CentOS下为python命令行添加Tab键自动补全功能

    难道python命令就真的没办法使用Tab键的自动补全功能么?只不过需要自己动手配置一下。操作系统环境:CentOSrelease6.4x86_32软件版本:Python2.6.6下面我们具体了解配置方法:1、编写一个Tab键自动补全功能的脚本。搜索引擎可以帮助你,关键字1、编写一个Tab键自动补全功能的脚本。新手会说不会写怎么办?

  10. 在Windows中的python选项卡完成

    我在python中编写了一个类似程序的跨平台shell,我想添加自定义制表符完成操作.在Unix系统上,我可以使用内置的readline模块,并使用如下代码来指定当我点击TAB键时可能的完成列表:我怎么能在Windows上这样做?如果可能的话,我想避免依赖第三方软件包.如果没有解决方案,是否可以简单地捕获TAB键按下,以便我可以从头开始实现自己的?虽然第三方软件包不是你的选择,但它可能对构建自己的软件包很有用,不是吗:).

随机推荐

  1. arcgis api for flex之专题图制作饼状图,柱状图等

    总结以上是DEVMAX为你收集整理的arcgisapiforflex之专题图制作饼状图,柱状图等全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  2. arcgis for flex或silverlight全国地图天气预报的实现

    总结以上是DEVMAX为你收集整理的arcgisforflex或silverlight全国地图天气预报的实现全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  3. 天津政府应急系统之GIS一张图arcgis api for flex讲解十一路径导航模块

    总结以上是DEVMAX为你收集整理的天津政府应急系统之GIS一张图arcgisapiforflex讲解十一路径导航模块全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  4. arcgis for flex全国地图天气预报的具体实现过程解析

    总结以上是DEVMAX为你收集整理的arcgisforflex全国地图天气预报的具体实现过程解析全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  5. 天津政府应急系统之GIS一张图arcgis api for flex讲解四地图导航控件模块

    总结以上是DEVMAX为你收集整理的天津政府应急系统之GIS一张图arcgisapiforflex讲解四地图导航控件模块全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  6. BlazeDS

    总结以上是DEVMAX为你收集整理的BlazeDS全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  7. 【Flex】读取本地XML,然后XML数据转成JSON数据

    总结以上是DEVMAX为你收集整理的读取本地XML,然后XML数据转成JSON数据全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  8. 【Flex】读取本地JSON,然后JSON数据转成XML数据

    总结以上是DEVMAX为你收集整理的读取本地JSON,然后JSON数据转成XML数据全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  9. 【Flex】编辑器的缩放功能绝对定位和相对定位

    总结以上是DEVMAX为你收集整理的编辑器的缩放功能绝对定位和相对定位全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. 如何实现一个自己的嵌入式语言y

    总结以上是DEVMAX为你收集整理的如何实现一个自己的嵌入式语言y全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

返回
顶部