Удалить символ внутри TextInput при вводе в него?(Flex 4.5) - PullRequest
2 голосов
/ 15 июня 2011

Я хочу удалить определенные символы внутри Spark TextInput, когда пользователь печатает на нем, не вызывая при этом каких-либо искажений, таких как лизание мышью после последнего символа или тому подобное.

  • Любые предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Вы можете создать свой собственный компонент 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.charCode и event.keyCode, чтобы сделать необходимые проверки.

1 голос
/ 15 июня 2011

Вы пытались ограничить свойство TextInput? Я не знаю, каковы ваши конкретные персонажи, но обычно есть 2 случая ограничения. Ограничить набор символов:

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

Разрешить все символы, кроме некоторых специальных символов:

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

Для работы с символами Юникода используйте \ u:

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