Tôi có UITextView, người dùng có thể viết tối đa 160 ký tự trong textView. Tôi có thể sửa chiều dài văn bản tối đa của UITextView bằng cách nào?độ dài văn bản của UITextView có thể được sửa?
Trả lời
Thay
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
với
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
được trả lời here
đoạn mã này cũng làm việc với Copy/Paste, mà còn đối phó với tình hình khi cố gắng dán số ký tự sẽ làm cho chế độ xem văn bản vượt quá giới hạn. Trong trường hợp đó, chỉ các ký tự đầu tiên của chuỗi được dán.
#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;
}
}
Một giải pháp cao cấp – kevinlawler
Vấn đề duy nhất (trừ khi nó chỉ là thực hiện của tôi) là làm thế nào để có được một truy cập để làm việc với điều này. –
Bạn có ý nghĩa gì với 'bộ đếm'? Hiển thị số ký tự trong chế độ xem văn bản? Nếu có, bạn có thể cập nhật bộ đếm trong phương thức textView: textDidChange: (nó hoạt động trong dự án của tôi). – manicaesar
Đến cuối câu trả lời này; giải pháp của manicaesar không hiệu quả với tôi. Dưới đây là thực hiện của tôi về ý tưởng tương tự:
#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;
}
Tôi thích phương pháp này vì nó cũng giới hạn các ký tự khi dán văn bản vượt quá MAX_LENGTH. Hãy nhớ bạn, thay thế 'replaceText' bằng 'text' để tránh lỗi. –
điều này là hoàn hảo, không bị hỏng – NSGodMode
Swift 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. Văn bản có thể nhấp của iOS bên trong UITextView
- 2. Lấy văn bản được chọn trên UITextView
- 3. cách biết khi nào văn bản được dán vào UITextView
- 4. UITextView Paging Enabled Tắt văn bản
- 5. Tập hợp văn bản UITextView không cập nhật văn bản
- 6. Trình chỉnh sửa văn bản có chế độ vim?
- 7. sizeWithFont không cho chiều cao chính xác cho UITextView nếu có một chuỗi dài trong văn bản được bọc
- 8. Làm cách nào để có được UITextView chỉ cuộn khi có đầy đủ văn bản
- 9. Làm thế nào để xóa văn bản trước đó trong UITextView trước khi viết văn bản?
- 10. UITextView, cuộn trong khi chỉnh sửa?
- 11. iOS: UIButton đổi kích thước theo độ dài văn bản
- 12. jquery chiều dài của văn bản()
- 13. Độ dài chuỗi với phông chữ nhất định để phù hợp với UITextView
- 14. JTextField: Cách đặt văn bản ở bên trái của JTextField khi văn bản quá dài
- 15. Đặt vị trí con trỏ UITextView ở cuối văn bản
- 16. Thay đổi kích thước văn bản thành Fit trên UITextView
- 17. Độ dài tối đa trong văn bản sử dụng jQuery
- 18. Làm cách nào để tìm văn bản có văn bản được kéo dài trên vim?
- 19. Chèn văn bản UITextView vào văn bản dạng xem văn bản
- 20. Cách di chuyển đề xuất sửa UITextView phía trên văn bản
- 21. Các ký tự dòng mới trong vùng văn bản tăng độ dài văn bản trong C#
- 22. Chiều rộng hộp văn bản có thể chỉnh sửa
- 23. Văn bản có thể chỉnh sửa trong Raphaël
- 24. Console.ReadLine ("Văn bản có thể chỉnh sửa văn bản mặc định trên dòng")
- 25. UITextView: Văn bản bắt đầu từ dòng văn bản thứ 2
- 26. Tôi có thể lập trình Chọn văn bản trong UITextView không?
- 27. UITextView alligining văn bản theo chiều dọc trung tâm
- 28. Làm cách nào để có được khung văn bản đã chọn từ UITextView
- 29. Javascript (jQuery) xóa câu cuối cùng của văn bản dài
- 30. PHP Sửa Văn bản Xấu
này KHÔNG phải là một trùng lặp .... Người dùng cần có một phương pháp để xác định độ dài của một 'UITextView' không phải là một' UITextField ' –