0

Flex 4.6 の吹き出しコントロールをコンボの代わりにモバイル アプリで使用しようとしています。シナリオは、ユーザーに "Select ..." を求めるプロンプトが表示される 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 によるサンプル アプリにも含まれています。どんなアイデアでも大歓迎です。

4

1 に答える 1

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>

このページでコードを見つけました: Adob​​e fex 4.6

于 2012-05-06T14:54:48.497 に答える