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. YouTrack:禁止某些字段的通知
- 3. Ace編輯器:禁止轉換某些ACSII字符,即<
- 4. 正則表達式 - 禁止某些字符串
- 5. jQuery AlphaNumeric by Paulo P. Marinas - 不會禁止某些字符
- 6. PHP如何cURL/FOpen停止在某些字符
- 7. 如何檢查某些字符是否在字符串中?
- 8. 我如何知道某些字符是否在字符串中?
- 9. 某些字符選擇字符,直到在C#中的某些字符
- 10. 如何禁用文本框內的某些字符串?
- 11. 如何禁止在dist-upgrade期間刪除某些軟件包?
- 12. 如何在第一個字符中禁止 - (連字符)?
- 13. 如何禁止某些情況下的ViewPager分頁給某些孩子?
- 14. 如何在CRUD編輯頁面中禁用某些字段?
- 15. 禁用輸入字段中的某些字符
- 16. 如何檢查C中的字符串中的某些字符?
- 17. 403禁止某些YouTube網址
- 18. 我想禁止某些前綴
- 19. 阻止在文本框中鍵入某些字符?
- 20. 防止用戶在文本框中輸入某些字符
- 21. 防止用戶在計算器中使用某些字符
- 22. 哪些ASCII字符被禁止在SGML屬性中使用?
- 23. [R某些字符
- 24. 如何刪除某些字符字符串在Excel
- 25. Java,如何替換字符串中的某些字符
- 26. 如何從sql中的字符串修改某些字符?
- 27. 如何檢查字符串中的某些字符?
- 28. 如何替換字符串中的某些字符?
- 29. Javascript:如何替換字符串中的某些字符?
- 30. 如何從字符串中選擇和裁剪某些字符?
這還不夠。當用戶粘貼一些文本時,禁止的字符可能會被粘貼在文本中。在這種情況下,您可能不想完全拒絕粘貼。您可能更喜歡刪除(或替換)禁止的字符。在所有情況下,我仍然努力做到這一點。 – 2013-03-12 17:40:49