Мне нужно убрать фокус с TextInput
, пока окно Adobe Air
не имеет фокуса. Но я не могу найти нормального способа сделать это.
Вот пример приложения:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
protected function onFocusIn(event:FocusEvent):void{
input.appendText('I');
}
protected function onFocusOut(event:FocusEvent):void{
input.appendText('o');
// input.focusManager.deactivate();
// stage.focus = null;
// focusManager.setFocus(input2);
// stage.focus = stage;
}
]]>
</fx:Script>
<s:VGroup>
<s:TextInput id="input" focusIn="onFocusIn(event)" focusOut="onFocusOut(event)" />
<s:TextInput id="input2" />
</s:VGroup>
stage.focus = null
does not work -stage.focus
is alreadynull
when window does not have focus, so it does not work.- # P3 #
# P4 #
# P5 # Я могу переключить фокус на что-то другое, но создание специального «фиктивного» ввода - это своего рода обезьяний патч, и я предпочитаю избегать его использования до тех пор, пока это не станет неизбежным.
Установка
stage.focus
для какого-либо родителя TextInput также не имеет никакого эффекта.Итак, знаете ли вы лучший способ снять фокус с компонента, когда у окна нет фокуса?