2012-05-28 64 views

回答

2

可以使用UITextViewDelegatedocs)的textView:shouldChangeTextInRange:replacementText:方法:

文本視圖調用此方法,每當用戶鍵入一個新的 字符或刪除現有字符。這種 方法的實現是可選的。您可以使用此方法替換文本,然後它將 提交到文本視圖存儲。例如,拼寫檢查程序 可能會使用此方法用拼寫正確的 替換拼寫錯誤的單詞。

您應該檢查參數replacementText是否包含非法字符。在這種情況下,您可以返回NO以防止插入文本。當插入多於一個字符的文本時,這可能會產生問題,並且並非所有字符都是允許的:您做什麼,允許插入(包括非法字符)還是防止它(包括允許的字符)?


這意味着你需要的textViewDidChange:方法(docs):

文本視圖調用響應用戶發起的更改 到文本此方法。響應以編程方式發起的更改不會調用此方法。

當調用此方法時,您可以檢查UITextView的值,然後刪除非法字符。


我認爲最好是使用這兩種方法。第一種方式給用戶打字時的最佳體驗(該字符根本不顯示,而不是先顯示,後來被刪除)。例如,第二種方法可確保在粘貼某些文本時非法字符將被刪除。

+2

您應該着手編寫一本編程書籍:)非常感謝! – DeZigny

+0

但你會如何檢測阿拉伯語言。我的意思是如何識別NSString是阿拉伯語或其他 –