我有一個UITextView,用戶可以在textView中寫入最多160個字符。 我如何解決UITextView的最大文本長度?如何修復UITextView的文本長度?
回答
更換
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
與
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
這是回答here
這個代碼塊還與複製/粘貼,而且還與形勢時科佩斯試圖粘貼會使文本視圖超出限制的字符數。在這種情況下,只有字符串的第一個字符被粘貼。
#define MAX_LENGTH 15 // Whatever your limit is
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSUInteger newLength = (textView.text.length - range.length) + text.length;
if(newLength <= MAX_LENGTH)
{
return YES;
} else {
NSUInteger emptySpace = MAX_LENGTH - (textView.text.length - range.length);
textView.text = [[[textView.text substringToIndex:range.location]
stringByAppendingString:[text substringToIndex:emptySpace]]
stringByAppendingString:[textView.text substringFromIndex:(range.location + range.length)]];
return NO;
}
}
卓越的解決方案 – kevinlawler 2011-05-26 20:37:31
唯一的問題(除非它只是我的實現)是如何得到一個櫃檯來處理這個問題。 – 2012-08-11 04:39:23
'counter'是什麼意思?在文本視圖中顯示字符數量?如果是的話,你可以在textView:textDidChange:方法中更新計數器(它在我的項目中工作)。 – manicaesar 2012-08-14 06:23:56
這個答案遲到了; manicaesar的解決方案對我無效。下面是我執行同樣的想法的:
#define MAX_LENGTH 140
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)replacementText
{
NSString *newText = [ textView.text stringByReplacingCharactersInRange: range withString: replacementText ];
if([newText length]<= MAX_LENGTH){
return YES;
}
// case where text length > MAX_LENGTH
textView.text = [ newText substringToIndex: MAX_LENGTH ];
return NO;
}
我更喜歡這種方法,因爲它粘貼超過MAX_LENGTH的文字時也會限制字符。請注意,用'文本'替換'replacementText'以避免錯誤。 – 2015-03-12 04:21:37
這是完美的,不會崩潰 – NSGodMode 2015-07-29 14:34:47
斯威夫特3
fileprivate let maxLen = 5
extension MyViewController : UITextViewDelegate{
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
let newLen = (textView.text.characters.count - range.length) + text.characters.count
return newLen <= maxLen
}
}
- 1. Iphone SDK UITextView文本長度
- 2. UITextView修復字符寬度
- 3. 如何修復Android Spinner中的文本長度
- 4. 如何粘貼長文本中的UITextView
- 5. UITextView最大長度
- 6. 修復QString大小(長度)
- 7. 修復SQL長度錯誤
- 8. 修復UITcrollView內的UITextView
- 9. 麪包屑代碼修復長文本
- 10. 使用PageControl的長文本的UITextView
- 11. UITextView - 修改選定的文本
- 12. 如何修復winforms標籤的高度和寬度以接受可變長度文本
- 13. 修復java GUI表的長度表
- 14. 如何在文本的長度超過div的長度時使文本換行?
- 15. 如何重置ScrollView文本的長度?
- 16. 如何控制文本框的長度
- 17. 如何修復PHP上的mcrypt字符長度
- 18. 如何修復DataGrid單元格中的字符長度
- 19. 在多個UITextView中顯示長文本
- 20. UITextView如何切斷文本
- 21. 如何修復文本框中的值?
- 22. 如何修改選擇框的長度
- 23. 如何修復div高度
- 24. 文本文件的長度
- 25. 如何計算我的UITextView中文本的高度?
- 26. 如何修復shippable.yml文件中的「長度必須小於40」錯誤?
- 27. 將文本文件修剪到所需的長度
- 28. 如何根據長度分段文本?
- 29. 如何根據文本長度
- 30. 如何設置文本長度按鈕
這是不是重複....用戶需要一種方法來確定一個'UITextView'的長度不是'的UITextField ' – 2013-01-15 00:42:02