2011-07-22 42 views
9

Tôi đang tạo ứng dụng tạo UITextView theo chương trình. Vấn đề là, khi người dùng nhập văn bản hoặc ứng dụng đặt văn bản, các từ trải rộng trên một dòng và tắt màn hình, chứ không phải là gói cho dòng tiếp theo. Khi tôi tạo một UITextView với trình tạo giao diện, văn bản sẽ tự động kết thúc, nhưng không phải khi nó được tạo theo chương trình.Cách tạo UITextView tự động kết thúc dòng văn bản?

Code:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)]; 
[[self view] addSubview:textView]; 
[textView becomeFirstResponder]; 
+0

TextView tự động thêm gói văn bản: http: //developer.apple.com/library/ios/#documentation/uikit/reference/uitextview_class/Reference/UITextView.html Are bạn chắc chắn bạn không có nghĩa là textFields? – chandhooguy

Trả lời

2

UITextViewUITextField các lớp học khác nhau. UITextField là một dòng và UITextView là đa dòng. Tạo một UITextView thay vì UITextField theo chương trình và bạn đã giải quyết được vấn đề của mình.

+6

Nó khá rõ ràng từ mã của mình rằng ông đang tạo ra một thể hiện của 'UITextView'. – PengOne

+1

Dòng đầu tiên của câu trả lời là "Tôi đang tạo một ứng dụng tạo ra một' UITextField' lập trình ", do đó câu trả lời của tôi. – mxcl

+0

Tôi nhận thấy bạn đã chỉnh sửa câu trả lời của mình. Tôi đưa ra tỷ lệ cược 2-1 rằng đó chỉ là lỗi đánh máy trong mã của anh ấy và anh ấy đang sử dụng UITextField thay vì UITextView, tôi đã thấy nó được thực hiện ba hoặc bốn lần, đó là một sai lầm dễ dàng để thực hiện và phù hợp với bằng chứng được cung cấp. Ngoài ra, đáng chú ý, UITextField không có một horizontalScrollBar giải thích sự cố ở trên khi anh ta cố gắng vô hiệu hóa nó. Ít nhất, bạn nên hoàn tác trừ đi câu trả lời mà bạn đã trả lời: P – mxcl

0

Toàn bộ điểm của UITextView là cho phép nhiều dòng văn bản. Từ tài liệu:

Lớp UITextView thực hiện hành vi cho vùng có thể cuộn, vùng văn bản nhiều dòng. Lớp này hỗ trợ hiển thị văn bản bằng cách sử dụng phông chữ, màu sắc và căn chỉnh tùy chỉnh và cũng hỗ trợ chỉnh sửa văn bản. Bạn thường sử dụng chế độ xem văn bản để hiển thị nhiều dòng văn bản, chẳng hạn như khi hiển thị phần thân của tài liệu văn bản lớn.

Kể từ khi UITextView kế thừa từ , bạn có thể buộc nó hợp tác bằng cách tắt cuộn ngang. Để làm điều này, bạn muốn đặt contentSize, ví dụ:

CGSize scrollableSize = CGSizeMake(210, 480); 
[textView setContentSize:scrollableSize]; 

này sẽ sửa chữa các chiều rộng để 210 và cho phép chiều cao để di chuyển đến 480. Vì bạn đang đặt textView thành kích thước (210,60), điều này sẽ cho phép cuộn dọc nhưng không cho phép cuộn ngang.

+0

Đó có thể là vấn đề, nhưng không phải trong trường hợp của tôi. Ngay cả khi textview là kích thước của toàn bộ màn hình, với chỗ cho nhiều dòng, văn bản không tự động quấn. Bất kỳ ý tưởng nào khác? – Greg

+0

@Greg: Tôi chỉ xem xét một chút và tìm thấy 3 bài đăng, từ ngày 9 tháng 6 đến ngày 11 tháng 1, hỏi câu hỏi này và không nhận được giải pháp nào. – PengOne

+0

Đó là liên quan, tôi cảm thấy như thế này là một vấn đề rất đơn giản. Nhiều ứng dụng sử dụng UITextView với gói văn bản và tất cả chúng đều không được tạo bằng IFB. – Greg

2

sẵn kể từ khi iOS 7:

textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping; 
Các vấn đề liên quan