我有一个 spark TextInput 控件,我想在用户输入时自动格式化。格式类似于XX-XX-XXX-XXX
每个X
都是数字的地方。
我已经创建了一个自定义Formatter
,用于在其他位置显示这些值,但是我无法获得一个优雅的解决方案来在 TextInput 控件本身中提供这种自动格式设置。
这是我目前拥有的代码。它可以工作,但是当格式化程序插入一个连字符时,TextInput 的插入点不会前进,因此下一个数字会插入到倒数第二个位置。
<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 的结果。如您所见,插入点是从末尾开始的三个字符,对应于三个插入的连字符。
关于在这里创建流畅的用户体验有什么建议吗?