2

ユーザーが入力したときに自動的にフォーマットしたいsparkTextInputコントロールがあります。形式はXX-XX-XXX-XXX、それぞれXが数字であるようなものです。

これらの値を他の場所に表示するために使用しているカスタムFormatterを作成しましたが、TextInputコントロール自体にこの種の自動フォーマットを提供するための洗練されたソリューションを得るのに苦労しています。

これが私が現在持っているコードです。動作しますが、フォーマッタがハイフンの1つを挿入すると、TextInputの挿入ポイントが進まないため、次の桁が最後から2番目の位置に挿入されます。

<fx:Script>
  protected function changeHandler(event:TextOperationEvent):void
  {
    itemID.text = formatter.format(itemID.text);
  }
</fx:Script>

<fx:Declarations>
  <formatters:MyFormatter id="formatter" separator="-" pattern="{[2,2,3,3]}" />
</fx:Declarations>

<s:Form>
  <s:FormItem label="Item ID:">
    <s:TextInput id="itemID" restrict="0-9" change="changeHandler(event)" prompt="ex. xx-xx-xxx-xxx" /> 
  </s:FormItem>
</s:Form>

これは、文字1、2、3、4、5、6、7、8、9、0を順番に入力した結果です。ご覧のとおり、挿入ポイントは、挿入された3つのハイフンに対応する末尾から3文字です。

間違った文字挿入を示す例

ここでスムーズなUXを作成するための提案はありますか?

4

1 に答える 1

1

itemIDTextField ベースのクラスの場合は、次を使用します。

itemID.setSelection(itemID.length, itemID.length);

キャレットをTFの最後に移動します。

于 2012-08-14T15:25:36.387 に答える