2012-05-05 31 views
6

Tôi đã có một UITextView lớn, gần như toàn màn hình. Nếu tôi chạm vào nó, bàn phím bật lên và tôi có thể chỉnh sửa văn bản. Tuy nhiên, còn tôi gõ, cuối cùng văn bản chạy xuống xem, phía sau bàn phím. Tôi không thể nhìn thấy những gì tôi đang gõ.UITextView, cuộn trong khi chỉnh sửa?

Bạn giải quyết vấn đề này bằng cách nào? Bạn có phải theo dõi vị trí con trỏ và cuộn chế độ xem theo cách thủ công không?

Trả lời

5

Tôi đoán bạn phải kích thước UITextView của bạn như là hiển thị/ẩn bàn phím. Vì vậy, bàn phím sẽ không được trên xem văn bản của bạn. Đây là các mã mẫu.

- (void)viewDidLoad 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification 
               object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillHide:) 
               name:UIKeyboardWillHideNotification 
               object:nil]; 
} 

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    [UIView beginAnimations:nil context:nil]; 
    CGRect endRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
    CGRect newRect = YOUT_TEXT_VIEW.frame; 
    //Down size your text view 
    newRect.size.height -= endRect.size.height; 
    YOUT_TEXT_VIEW.frame = newRect; 
    [UIView commitAnimations]; 
} 

- (void)keyboardWillHide:(NSNotification *)notification 
{ 
    ... // Resize your textview when keyboard is going to hide 
} 
+0

Thanx Thưa Thant Thet. – jamil

7

Bạn cần phải sử dụng mã sau đây cho cuộn xuống TextView theo phạm vi văn bản (hoặc nói theo gõ)

NSRange range = NSMakeRange(textView.text.length - 1, 1); 
[textView scrollRangeToVisible:range]; 

Hope, điều này sẽ giúp bạn ...

+0

Thanx để phản hồi..nhưng tôi có liên kết những gì tôi muốn làm .. liên kết này hoạt động tốt. – jamil

+3

https://developer.apple.com/library/ios/#samplecode/KeyboardAccessory/Listings/Classes_ViewController_m.html – jamil

+3

@ user1328096 Đối với hậu thế, bạn có thể viết giải pháp cho câu hỏi của mình dưới dạng câu trả lời đúng không? (Và đừng quên chấp nhận một số câu trả lời!) –

2

TPKeyboardĐánh bại là một công cụ tuyệt vời xử lý tất cả thao tác di chuyển để tránh bàn phím cho bạn./Rất/tiện dụng và rất khuyến khích. Xem: https://github.com/michaeltyson/TPKeyboardAvoiding

+0

Wow, những gì một TPKeyboardAvoiding đá quý là! – thomers

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