How can I make a UITextField move up when the keyboard is present - on starting to edit?

Z SDK iOS:

mamUIView zUITextFields, które wywołują klawiaturę. Potrzebuję tego, aby móc:

Zezwalaj na przewijanie zawartościUIScrollView aby zobaczyć inne pola tekstowe po podniesieniu klawiatury

Automatycznie „przeskakuj” (przewijając w górę) lub skracając

Wiem, że potrzebujęUIScrollView. Próbowałem zmienić klasę mojegoUIView do aUIScrollView ale nadal nie mogę przewijać pól tekstowych w górę ani w dół.

Czy potrzebuję obuUIView i aUIScrollView? Czy ktoś wchodzi do drugiego?

Co należy wdrożyć, aby automatycznie przewinąć do aktywnego pola tekstowego?

Idealnie, jak najwięcej konfiguracji komponentów będzie można wykonać w Builder Interface. Chciałbym pisać tylko kod, który tego potrzebuje.

ZanotujUIView (lubUIScrollView), z którym pracuję, jest wywoływany przez pasek kart (UITabBar), który musi działać normalnie.

Edytuj: Dodaję pasek przewijania tylko w przypadku pojawienia się klawiatury. Chociaż nie jest to potrzebne, czuję, że zapewnia lepszy interfejs, ponieważ wtedy użytkownik może na przykład przewijać i zmieniać pola tekstowe.

Pracuję tam, gdzie zmieniam rozmiar ramkiUIScrollView kiedy klawiatura idzie w górę iw dół. Po prostu używam:

-(void)textFieldDidBeginEditing:(UITextField *)textField { 
    //Keyboard becomes visible
    scrollView.frame = CGRectMake(scrollView.frame.origin.x, 
                     scrollView.frame.origin.y, 
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50);   //resize
}

-(void)textFieldDidEndEditing:(UITextField *)textField {
   //keyboard will hide
    scrollView.frame = CGRectMake(scrollView.frame.origin.x, 
       scrollView.frame.origin.y, 
     scrollView.frame.size.width,
      scrollView.frame.size.height + 215 - 50); //resize
}

Nie powoduje to jednak automatycznego „przesuwania się w górę” ani wyśrodkowywania dolnych pól tekstowych w widocznym obszarze, co bardzo bym chciał.

questionAnswers(30)

yourAnswerToTheQuestion