How can I make a UITextField move up when the keyboard is present - on starting to edit?
Z SDK iOS:
mamUIView
zUITextField
s, 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ł.