如何只允許UITextView中的某些字符?Xcode:如何只允許UITextView中的某些字符?
我想只允許英文字符&數字&阿拉伯字符。
我發現很多解決方案,但對於UITextField而不是UITextView!
如何只允許UITextView中的某些字符?Xcode:如何只允許UITextView中的某些字符?
我想只允許英文字符&數字&阿拉伯字符。
我發現很多解決方案,但對於UITextField而不是UITextView!
可以使用UITextViewDelegate
(docs)的textView:shouldChangeTextInRange:replacementText:
方法:
文本視圖調用此方法,每當用戶鍵入一個新的 字符或刪除現有字符。這種 方法的實現是可選的。您可以使用此方法替換文本,然後它將 提交到文本視圖存儲。例如,拼寫檢查程序 可能會使用此方法用拼寫正確的 替換拼寫錯誤的單詞。
您應該檢查參數replacementText
是否包含非法字符。在這種情況下,您可以返回NO
以防止插入文本。當插入多於一個字符的文本時,這可能會產生問題,並且並非所有字符都是允許的:您做什麼,允許插入(包括非法字符)還是防止它(包括允許的字符)?
這意味着你需要的textViewDidChange:
方法(docs):
文本視圖調用響應用戶發起的更改 到文本此方法。響應以編程方式發起的更改不會調用此方法。
當調用此方法時,您可以檢查UITextView
的值,然後刪除非法字符。
我認爲最好是使用這兩種方法。第一種方式給用戶打字時的最佳體驗(該字符根本不顯示,而不是先顯示,後來被刪除)。例如,第二種方法可確保在粘貼某些文本時非法字符將被刪除。
您應該着手編寫一本編程書籍:)非常感謝! – DeZigny
但你會如何檢測阿拉伯語言。我的意思是如何識別NSString是阿拉伯語或其他 –