гибко вернуть потерянный фокус - PullRequest
0 голосов
/ 27 ноября 2009

У меня есть пользовательский компонент с текстовым полем и кнопкой poup в

<mx:HBox>   
    <mx:Text id="source" height="100%" width="40%" data="my text" />
    <mx:VBox backgroundAlpha="0" height="100%" borderThickness="0"> 
        <mx:PopUpButton enabled="true" id="editButton"  width="40" icon="@Embed('assets/images/Legends/editIcon.png')" 
            initialize="popUpButton_initialize()" 
            popUp="{actionMenuEdit}" 
            height="19" toolTip="Edit at segment"/>
    </mx:VBox>
</mx:HBox>

Я использую этот пользовательский компонент в качестве itemEditor для сетки данных

У меня проблема с фокусом. Мне нужно установить фокус на текст после всплывающего окна при нажатии кнопки Сценарий таков, что я печатаю текст в исходном тексте. Если перейти к всплывающей кнопке и щелкнуть любой элемент, фокус переместится на всплывающую кнопку, и я не могу набрать текст, так как фокус потерян.

Мне нужно установить фокус обратно на исходный код после выбора элемента с помощью всплывающей кнопки, чтобы я мог продолжить набирать текст. На данный момент мне нужно нажать кнопку усиления в тексте, а затем я могу напечатать.

Ответы [ 3 ]

0 голосов
/ 08 декабря 2009

Вам потребуется добавить обработчик для события change всплывающей кнопки, который устанавливает фокус на вашем текстовом поле.

Это будет примерно так:

this.focusManager.setFocus(source);

или в вашем примере:

<mx:HBox>   
    <mx:Text id="source" height="100%" width="40%" data="my text" />
    <mx:VBox backgroundAlpha="0" height="100%" borderThickness="0"> 
        <mx:PopUpButton enabled="true" id="editButton"  width="40" icon="@Embed('assets/images/Legends/editIcon.png')" 
                initialize="popUpButton_initialize()" 
                popUp="{actionMenuEdit}" 
                change="{this.focusManager.setFocus(source)}"
                height="19" toolTip="Edit at segment"/>
    </mx:VBox>
</mx:HBox>
0 голосов
/ 11 апреля 2012

может помочь вам

if (flexApplication != "undefined") flexApplication.focus();
0 голосов
/ 27 ноября 2009
source.setFocus()
...