2012-05-05 63 views
6

Mam duży UITextView, prawie pełny ekran. Jeśli go dotknę, wyświetli się klawiatura i będę mógł edytować tekst. Jednak im dłużej piszę, ostatecznie tekst spływa z widoku za klawiaturę. Nie widzę już tego, co piszę.UITextView, przewijać podczas edycji?

Jak sobie z tym poradzić? Czy musisz śledzić pozycję kursora i przewijać widok ręcznie?

Odpowiedz

5

Chyba trzeba rozmiar UITextView jako klawiatury pokazuje/ukrywa. Tak więc klawiatura nie będzie nad twoim widokiem tekstowym. Oto przykładowe kody.

- (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 Drogi Thant Thet. – jamil

7

Musisz użyć następującego kodu do przewijania w dół TextView według zakresie tekstu (lub powiedzieć według typowania)

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

nadzieję, że to pomoże ...

+0

Thanx za odpowiedź .. ale mam link, co chcę zrobić. Pod linkiem, który działa dobrze. – jamil

+3

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

+3

@ user1328096 Dla przyszłych pokoleń możesz napisać odpowiedź na swoje pytanie jako właściwą odpowiedź? (I nie zapomnij przyjąć niektórych odpowiedzi!) –

Powiązane problemy