Flex-ItemRenderer-verhindert, dass die Verwendung der Tabulatortaste zwischen text-inputs

Habe ich eine benutzerdefinierte ItemRenderer zeigt, dass 5 text-Eingaben in jeder der 3 Platten:

<?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>

Leider, wenn verwendet, als ItemRenderer, Navigation mit der Tabulatortaste zwischen den text-Eingänge nicht funktioniert, auch mit der tabIndex-Werte vor. Wenn ich diesen code kopieren, um eine MXML-Anwendung seiner eigenen, automatisches tabbing zwischen Texteingaben funktioniert wie erwartet.

Weiß jemand, wie die Wiederherstellung der Navigation mit der Tabulatortaste in diesem Szenario? Es wird eine Schande sein wenn ich die Version dieser app ohne eine so einfache usability-element.

Ich nehme an, ich kann die Notwendigkeit zur Umsetzung mx.managers.IFocusManagerComponent, aber ich finde keine Beispiele auf, wie das zu tun, und die FocusManager-docs nicht helfen, entweder.

  • Haben Sie versucht, die Einstellung tabEnabled auf die textInputs?
  • Ich versuchte, das gerade jetzt, es scheint nicht zu helfen.
  • Wenn Sie sagen, die "Registerkarte Indizierung funktioniert nicht" Verhalten, was sehen Sie? Es tut springen auf die nächste Kontrolle nach Ihr-List-basierte Komponente oder ist es die Tab rund um den browser chrome?
  • Die ItemRenderer-oben in einer HorizontalList-Steuerelement. Wenn eine TextInput-Steuerelemente über den Fokus hat und ich die tab-Taste drücken, springt der Fokus außerhalb des HorizontalList-Steuerelement und der nächsten Kontrolle der Anwendung auf die Leinwand. Schlagen tab ein paar mal mehr macht-Zyklus bis über den browser steuert, wie die Adresse bar.
InformationsquelleAutor Adam Tuttle | 2009-05-18
Schreibe einen Kommentar