我正在编写一个Flex应用程序,但我发现了我认为是一个奇怪的问题。
我想创建一个文本框和一个DateChooser,因为datefield没有按我想要的那样做,它是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"
,但我不希望它最初可见。
有什么想法吗?
答案 0 :(得分:1)
我认为它实际上与DateChooser的初始可见性无关。您是否已确认您的事件处理程序确实已被调用,并且按照有意义的顺序进行验证?问题似乎是当您尝试在DateChooser中进行选择时,TextInput会获取一个focusOut事件,该事件会隐藏DateChooser,这显然会阻止它接收选择事件。我认为你需要更加有选择性地隐藏DateChooser。也许您需要推迟隐藏,以便它有机会首先响应选择。