在键入时删除TextInput中的字符? (Flex 4.5)

时间:2011-06-15 08:31:06

标签: flex flex4.5

我希望在用户输入时删除Spark TextInput中的特定字符,这样就不会导致像在最后一个字符之后用鼠标舔等任何内容。

  • 感谢任何建议。

2 个答案:

答案 0 :(得分:1)

您是否尝试过限制TextInput的属性?我不知道你的具体人物是什么,但通常有2例限制。 限制为一组字符:

<s:TextInput restrict="A-Za-z" />

允许除一些特殊字符以外的所有字符:

<s:TextInput restrict="^0-9" />

要处理unicode字符,请使用\ u:

<s:TextInput restrict="\u0239" />

答案 1 :(得分:1)

您可以创建自己的自定义TextInput组件并覆盖keyDownHandler(),也可以在TextInput上添加事件监听器,如下所示:

<s:TextInput keyDown="{ textInputKeyDownHandler(event) }"/>

然后在事件处理程序上:

private function textInputKeyDownHandler(event:KeyboardEvent):void {
    // Make your validations and if necessary, use the following command 
    // to prevent the character from being added to the TextInput
    event.preventDefault();
}

这样,字符永远不会添加到TextInput,这意味着 text 属性,光标位置不会改变。

注意:使用event.charCodeevent.keyCode进行必要的验证。