我一直在试用Flex 4.6中的Callout控件,以便在移动应用中使用,而不是使用组合。方案是您有一个TextInput,提示用户“选择...”,当您触摸它(iPad)时,它会获得焦点并填充一个Callout以允许您从列表中选择。
这在Mac上运行时工作正常,但是当我部署到iPad时,只有在TextInput控件打开编辑时才会触发focusIn事件。由于弹出了软键盘,因此当我真的只想从列表中选择它时,控件可编辑,这就失败了。
TextInput控件的代码是;
<s:TextInput id="txtLocation" x="171" y="149"
enabled="false" editable="false"
height="38" fontSize="16"
prompt="Select ..."
focusEnabled="true"
focusIn="depotCallout.open(this.txtLocation,true)"/>
此代码也在Holly Schinsky的示例应用程序中演示了如何使用标注。任何想法都将不胜感激。
答案 0 :(得分:1)
好的我有点自以为是,不是专业编码员,但我找到了答案。
<?xml version="1.0" encoding="utf-8"?>
<!-- mobile_keyboard/views/UseNextLikeTab.mxml -->
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Change Focus">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
<s:VerticalLayout paddingTop="10" paddingLeft="10" paddingRight="10"/>
</s:layout>
<fx:Script>
<![CDATA[
private function changeField(ti:TextInput):void {
// Before changing focus to a new control, set the stage's focus to null:
stage.focus = null;
// Set focus on the TextInput that was passed in:
ti.setFocus();
}
]]>
</fx:Script>
<s:HGroup>
<s:Label text="1:" paddingTop="15"/>
<s:TextInput id="ti1" prompt="First Name"
width="80%"
returnKeyLabel="next"
enter="changeField(ti2)"/>
</s:HGroup>
<s:HGroup>
<s:Label text="2:" paddingTop="15"/>
<s:TextInput id="ti2" prompt="Middle Initial"
width="80%"
returnKeyLabel="next"
enter="changeField(ti3)"/>
</s:HGroup>
<s:HGroup>
<s:Label text="3:" paddingTop="15"/>
<s:TextInput id="ti3" prompt="Last Name"
width="80%"
returnKeyLabel="next"
enter="changeField(ti1)"/>
</s:HGroup>
</s:View>
我在此页面上找到了代码:Adobe fex 4.6