2011-06-15 57 views
2

我希望在用戶輸入時去除Spark TextInput中的特定字符,而不會在最後一個字符之後引起任何混亂,如使用鼠標舔Spark。在輸入TextInput的同時刪除字符? (Flex 4.5)

  • 任何建議表示讚賞。
+0

這些角色應該在那裏嗎?我的意思是,如果允許用戶插入這些「特定字符」?如果沒有,請嘗試使用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

+0

他們應該是,但經過一定數量的使用後 - 他們將被禁止,並且最近取消了限制。 – 2011-06-15 10:27:56

+0

但是,你想刪除所有**出現的特定字符或只有**在某個限制後鍵入的**嗎?你能提供一個實際的例子嗎? – bmleite 2011-06-15 10:59:26

回答

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,這意味着文本財產和光標的位置不會改變。

注意:使用event.charCodeevent.keyCode進行必要的驗證。

1

您是否嘗試過限制TextInput的屬性?我不知道你的具體特徵是什麼,但通常有兩種限制。 限制爲一組字符:

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

允許所有字符除了一些特殊字符:

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

對付的Unicode字符,請使用\ U:

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

它受到限制,但這不是問題。 – 2011-06-15 10:26:30

相關問題