Обновление DateChooser корректно, только если видно при запуске - PullRequest
0 голосов
/ 18 марта 2010

Я пишу приложение Flex и обнаружил странную проблему.

Я хочу создать текстовое поле и DateChooser, так как поле даты не сделало то, что я хотел, и это Halo, поэтому я не могу скинуть его легко. Я хочу, чтобы DateChooser отображался при нажатии на ввод текста. Вот исключение из моего кода:

    <s:TextInput id="wholeDate" width="100"  
                 mouseOver="stopChangeToNormal();"
                 paddingRight="10"
                 click="date1.visible = true"
                 focusOut="date1.visible = false"/>
    <s:Button label="Go" width="70" />
</s:Panel>

<mx:DateChooser id="date1" 
                visible = "false"
                change="useDate(event);" 
                mouseOver="changeToNormalState = false;" 
                y="{wholeDate.y + buttonsGroup.y + 20}"
                x="{wholeDate.x + buttonsGroup.x - 175 }" />    

Странная вещь в том, что это работает, если я запускаю visible = "true", но если у меня есть visible="false", это не работает! Он показывает, но выбранная дата не отображается в поле, как если бы она была у меня visible="true", но я не хочу, чтобы она была видна изначально.

Есть идеи?

1 Ответ

1 голос
/ 18 марта 2010

Я не думаю, что на самом деле это как-то связано с первоначальной видимостью DateChooser. Вы убедились, что ваши обработчики событий действительно вызываются и в том порядке, который имеет смысл? Проблема заключается в том, что при попытке сделать выбор в DateChooser TextInput получает событие focusOut, которое скрывает DateChooser, который, по-видимому, не позволяет ему получить событие выбора. Я думаю, вам нужно быть более разборчивым, когда вы действительно скрываете DateChooser. Возможно, вам нужно отложить скрытие, чтобы у него была возможность сначала отреагировать на выбор.

...