1
A
回答
4
您可以通過指定一個委託給UITextView中,貫徹在委託下面的方法做到這一點:
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
在身體只是寫一些代碼,通過輸入文本掃描,看看你發現要過濾的字符,如果看到它們返回NO,否則返回YES。
0
不幸的是,這並不是那麼簡單,因爲textView:shouldChangeTextInRange: replacementText:
不必用單字符串調用。它用於鍵盤輸入,但不是粘貼時,或使用語音識別輸入文本時。
那麼,如果用戶粘貼(或指定)包含禁止字符的字符串,您想要做什麼?您可能希望讓所有有效的文本都通過並且只刪除(或替換)不需要的字符。
錯誤的想法是修復textViewDidChange:
委託例程中的文本。雖然這似乎工作,但它以某種方式防止在UITextView
工作的語音輸入。
正確的想法是實施textView:shouldChangeTextInRange: replacementText:
完全過濾。下面是一個過濾掉換行符的示例實現:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder]; // dismiss keyboard
return NO;
}
text = [text stringByReplacingOccurrencesOfString:@"\n" withString:@" "]; // replace by spaces
NSString *fullText = [textView.text stringByReplacingCharactersInRange:range withString:text];
textView.text = fullText;
return NO;
}
請注意,當用戶敲擊回車鍵時,它將關閉鍵盤。但並不完美:當用戶粘貼單個換行符時,它也會關閉鍵盤。這可能是一個問題,但這種情況很少發生。
相關問題
- 1. 禁止某些字符串
- 2. Postgresql - 如何禁止在某些字符串字段中使用空格
- 3. 禁止在輸入框中輸入某些字符的腳本
- 4. Xcode:如何只允許UITextView中的某些字符?
- 5. 如何禁止某些操作?
- 6. UITextView如何以編程方式編輯某些字符串?
- 7. YouTrack:禁止某些字段的通知
- 8. 如何在某些位置刪除字符串中的某些字符?
- 9. 如何在PHP中禁止某些E_WARNING的日誌記錄?
- 10. 正則表達式 - 禁止某些字符串
- 11. Ace編輯器:禁止轉換某些ACSII字符,即<
- 12. jQuery AlphaNumeric by Paulo P. Marinas - 不會禁止某些字符
- 13. 使用preg_match禁用某些字符
- 14. PHP如何cURL/FOpen停止在某些字符
- 15. 如何檢查某些字符是否在字符串中?
- 16. 我如何知道某些字符是否在字符串中?
- 17. 防止用戶輸入某些字符?
- 18. 某些字符選擇字符,直到在C#中的某些字符
- 19. 如何禁用文本框內的某些字符串?
- 20. 如何禁止JFormattedTextField中的字符?
- 21. 如何防止某些表單字段在查詢字符串中顯示?
- 22. 某些字符
- 23. 如何禁止在dist-upgrade期間刪除某些軟件包?
- 24. 如何在第一個字符中禁止 - (連字符)?
- 25. 如何禁止某些情況下的ViewPager分頁給某些孩子?
- 26. 如何在CRUD編輯頁面中禁用某些字段?
- 27. 禁用輸入字段中的某些字符
- 28. 如何檢查C中的字符串中的某些字符?
- 29. 403禁止某些YouTube網址
- 30. 暫時禁止訪問某些頁面
這還不夠。當用戶粘貼一些文本時,禁止的字符可能會被粘貼在文本中。在這種情況下,您可能不想完全拒絕粘貼。您可能更喜歡刪除(或替換)禁止的字符。在所有情況下,我仍然努力做到這一點。 – 2013-03-12 17:40:49