ユーザーが入力したときに自動的にフォーマットしたい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を作成するための提案はありますか?