5

iOSでは、TextInputは奇妙なものになります。次のコード:

        <s:TextInput id="password" width="100%" displayAsPassword="true"
                     needsSoftKeyboard="true" 
                     prompt="Password"  
                     softKeyboardType="default"
                     returnKeyLabel="done"
                     autoCorrect="false"
                     skinClass="spark.skins.mobile.TextInputSkin"
                     />

textInputを選択すると、プロンプトは期待どおりに消えますが、最初の文字は自動的に選択されます。2番目のキーを押すと、最初の文字が削除されます。これは、最初の文字が入力され、フィールドにプロンプ​​トメッセージが表示されている場合にのみ発生します。「オートコレクト」は何もしないようです。

この問題の回避策を知っている人はいますか?SkinnableTextBaseクラスを調べましたが、有罪のコードが見つかりません。

この問題はFlex4.6から始まりました。

4

3 に答える 3

14

Flexコードに何時間も費やした後、私はついにFlexが問題ではないことに気づきました。この問題はAir3.2Air 3.3ベータ版でも)で発生します。Air 3.1でコンパイルすると、すべて正常に動作します。

いろいろ試してみましたが、 Air3.2以降では直せないようです。私の他のプロジェクトをチェックしましたが、Air3.2でコンパイルされたすべてのアプリケーション同様の問題があるようです:(

[アップデート]

問題は、FlexSDKのSkinnableTextBase.asのどこかにあります

textDisplay_changeHandler (event:Event)が呼び出されると、invalidateSkinState()が問題を引き起こします。スキンの状態をなし( "")に設定すると、次のように機能します。

skin.currentState = "";
invalidateSkinState();

問題は、テーマが適切に更新されないことです(そしてそれはah @ ckです)。

CSSで「showPromptWhenFocused」falseに設定した場合、問題は発生しません。唯一の副作用は、textInputを選択するとプロンプトが消えることです。

s|TextInput
{
    skinClass:ClassReference("spark.skins.mobile.TextInputSkin");
    showPromptWhenFocused: false;
}

これが誰かを助けることを願っています。

于 2012-06-07T09:50:44.263 に答える
3

FB4.6およびAir3.5を使用したスパークスキンを使用したTextinputのフライングの問題は解決されました。実際の問題はAirにあると思います。しかし、フォーカスされたときにソフトキーボードがアクティブにならないようになりました。

<s:TextInput id="mail"  softKeyboardType="email" skinClass="spark.skins.spark.TextInputSkin" />
于 2012-12-20T06:36:34.747 に答える
0

TextInputをスクロールしていますか?そうでない場合は、新しいFlex4.6TextInputモバイルスキンを使用できます。新しいスキンは、問題を修正する可能性のあるStageTextを利用しています。属性skinClass="spark.skins.mobile.TextInputSkin"を削除すると、デフォルトで新しいスキンになります。

<s:TextInput id="password" width="100%" displayAsPassword="true"
                 needsSoftKeyboard="true" 
                 prompt="Password"  
                 softKeyboardType="default"
                 returnKeyLabel="done"
                 autoCorrect="false"
                 />

注:TextInputをスクロールすると、StageTextが正しくレンダリングされないため、現在のようにFlex4.5モバイルスキンを使用する必要があります。

于 2012-06-18T04:14:20.053 に答える