我希望在用戶輸入時去除Spark TextInput中的特定字符,而不會在最後一個字符之後引起任何混亂,如使用鼠標舔Spark。在輸入TextInput的同時刪除字符? (Flex 4.5)
- 任何建議表示讚賞。
我希望在用戶輸入時去除Spark TextInput中的特定字符,而不會在最後一個字符之後引起任何混亂,如使用鼠標舔Spark。在輸入TextInput的同時刪除字符? (Flex 4.5)
您可以創建您自己的自定義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
,這意味着文本財產和光標的位置不會改變。
注意:使用event.charCode
和event.keyCode
進行必要的驗證。
您是否嘗試過限制TextInput的屬性?我不知道你的具體特徵是什麼,但通常有兩種限制。 限制爲一組字符:
<s:TextInput restrict="A-Za-z" />
允許所有字符除了一些特殊字符:
<s:TextInput restrict="^0-9" />
對付的Unicode字符,請使用\ U:
<s:TextInput restrict="\u0239" />
它受到限制,但這不是問題。 – 2011-06-15 10:26:30
這些角色應該在那裏嗎?我的意思是,如果允許用戶插入這些「特定字符」?如果沒有,請嘗試使用TextInput中的[restrict](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/supportClasses/SkinnableTextBase.html#restrict)屬性以避免不需要的字符,它更容易。 – bmleite 2011-06-15 10:23:17
他們應該是,但經過一定數量的使用後 - 他們將被禁止,並且最近取消了限制。 – 2011-06-15 10:27:56
但是,你想刪除所有**出現的特定字符或只有**在某個限制後鍵入的**嗎?你能提供一個實際的例子嗎? – bmleite 2011-06-15 10:59:26