Flex автоматически установит порядок вкладок для вас на основе порядка, в котором компоненты были добавлены в MXML. Если ваш MXML выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="200" minHeight="200">
<s:TextInput id="textInput1"
x="0" y="0"
text="TEXT INPUT #1" />
<s:ComboBox id="comboBox2"
x="0" y="60">
<s:dataProvider>
<mx:ArrayList>
<fx:String>Red</fx:String>
<fx:String>Orange</fx:String>
<fx:String>Yellow</fx:String>
<fx:String>Blue</fx:String>
<fx:String>Green</fx:String>
</mx:ArrayList>
</s:dataProvider>
</s:ComboBox>
<s:TextInput id="textInput2"
x="0" y="30"
text="TEXT INPUT #2" />
</s:Application>
Когда вы нажимаете кнопку табуляции для перемещения между полями, она переходит к TextInput1
, затем Combobox1
, затем TextInput2
, даже если они расположены в другом порядке в зависимости от их x
, y
координаты. Это связано с порядком, в котором эти компоненты появляются в MXML. Когда вы устанавливаете свойство tabIndex
, вы можете вручную управлять порядком вкладок.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="200" minHeight="200">
<s:TextInput id="textInput1"
x="0" y="0"
text="TEXT INPUT #1"
tabIndex="1"/>
<s:ComboBox id="comboBox2"
x="0" y="60"
tabIndex="3">
<s:dataProvider>
<mx:ArrayList>
<fx:String>Red</fx:String>
<fx:String>Orange</fx:String>
<fx:String>Yellow</fx:String>
<fx:String>Blue</fx:String>
<fx:String>Green</fx:String>
</mx:ArrayList>
</s:dataProvider>
</s:ComboBox>
<s:TextInput id="textInput2"
x="0" y="30"
text="TEXT INPUT #2"
tabIndex="2"/>
</s:Application>
Что касается границы фокуса, если вы не устанавливаете пользовательскую обложку для своих компонентов, они все равно должны иметь рамку по умолчанию с синей рамкой вокруг них. Компонент Combobox
также может получить фокус без проблем. Убедитесь, что для свойства tabFocusEnabled
также не установлено значение false
.