2012-06-26 32 views
8

Có UITextView trong giao diện, bộ điều khiển xem đang hiển thị với Kiểu phương thức. Trong phương thức viewDidLoad của tôi, tôi đặt văn bản của UITextView này, nhưng văn bản không hiển thị. Hình ảnh bên dưới hiển thị lỗi. Màu văn bản là màu đen.Văn bản trong UITextView không hiển thị chính xác, ẩn, nhưng chiếm không gian

Điều kỳ lạ là khi tôi nhấn và giữ trong chế độ xem văn bản hoặc nhấn vào [trở về] trong bàn phím, văn bản sẽ hiển thị. Một điều tôi nhận thấy là lỗi này chỉ xảy ra lỗi khi văn bản tôi đặt dài hơn chiều rộng khung UITextView và từ cuối cùng không bị hỏng chẳng hạn như url dài.

Tôi nghĩ rằng sự cố là có thể từ bọc không hoạt động chính xác.

Xin cảm ơn trước.

enter image description here

Mã như dưới đây:

UITextView *myTextView = [[UITextView alloc]initWithFrame:CGRectMake(10, 10, 520, 220)]; 
myTextView.textColor = [UIColor blackColor];  
myTextView.font = [UIFont systemFontOfSize:20]; 
myTextView.layer.cornerRadius = 5; 
myTextView.delegate = self; 
myTextView.text = @"long text should some like http://stackoverflow.com/posts/11200726/edit"; 

[self.view addSubview:myTextView]; 
[myTextView release]; 

RESOVLED. Trong phương thức viewDidLoad, hãy thêm mã bên dưới:

CGRect tempFrame = myTextView.frame; 
[myTextView setFrame:CGRectZero]; 
[myTextView setFrame:tempFrame]; 
+0

Bạn có thể hiển thị mã cho UITextView không? Cảm ơn. – pasawaya

+0

Tôi đã thêm mã. Chỉ cần phân bổ/init, và sau đó thiết lập, phát hành. Không có thứ gì khác ở đây. –

+0

Sửa lỗi của bạn cũng hoạt động cho tôi. Tôi đã có cùng một vấn đề ngay cả với một văn bản ngắn, vì vậy tôi nghĩ rằng vấn đề không liên quan đến gói từ. Gọi FYI [myTextView setNeedsDisplay] và/hoặc [myTextView setNeedsLayout] không giải quyết được nhưng thay đổi khung. –

Trả lời

0

Bạn có chắc là màu văn bản có màu đen không? Ngoài ra, hãy chắc chắn rằng hình ảnh nằm phía sau textView trong hệ thống phân cấp khung nhìn. TextView tự động xử lý Word.

+0

Có, Màu đen. Không có hình ảnh ở đây. –

0

Tôi nghĩ trong trường hợp này, viewDidLoad đang được gọi trước khi modelViewController được trình bày.

  • Đặt văn bản sau khi modalViewController được trình bày.
  • Nếu điều đó cũng không hoạt động, sau đó sau khi trình bày mô hình, hãy gọi phương thức để đặt văn bản một cách rõ ràng.
+0

Tôi đã thử đặt văn bản trong chế độ xemDidAppear, không hoạt động. –

0

Kiểm tra cấu trúc phân cấp chế độ xem của bạn. Bạn có thể đã thêm một textView khác ở trên chế độ xem đó.

0

Thử thay đổi màu nền của textView. Nó phải xuất hiện là UITextView được thêm vào đó. Và chắc chắn rằng bạn không thêm một chế độ xem khác dưới dạng một chế độ xem con trên UITextView của bạn. Nếu textColor là màu đen nó phải được hiển thị, wordwrap được thực hiện theo mặc định tự động trừ khi bạn thay đổi thuộc tính. Cũng cố gắng kiểm tra các thiết lập thuộc tính trong XIB nếu được thêm vào và plz hiển thị mã nếu thêm lập trình.

+0

Tôi đã thêm mã. Chỉ cần phân bổ/init, và sau đó thiết lập, phát hành. Không có thứ gì khác ở đây. –

0

Tôi nghĩ vấn đề ở:

self.view 

Hãy thử thêm dòng mã này ở đầu

self.view = [[[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease]; 

Và nếu không sẽ giúp, hãy thử loại bỏ dòng mã này

myTextView.layer.cornerRadius = 5; 
5

Subclass UITextView , đến một lớp học của riêng bạn, giả sử MyUITextView: UITextView.

Khởi tạo nó offscreen với

[[MyUITextView alloc] initWithFrame: CGRectZero]

Trong MyUITextView ghi đè lên các phương pháp

- (void) willMoveToWindow: (UIWindow *) newWindow

và trong đó, đặt self.frame thành giá trị thích hợp.

tính năng này phù hợp với tôi!

+0

cho cùng một vấn đề? có thể, chỉ cần thiết lập lại khung hình, tôi sẽ cố gắng này. cảm ơn. –

+1

Tôi vừa đặt lại khung trong phương thức viewDidLoad. Không phân lớp chế độ xem văn bản. Và nó hoạt động! cảm ơn! –

Các vấn đề liên quan