Я разрабатываю приложение для iPad, в котором у меня есть форма в виде просмотра прокрутки несколько UITextField
. В таком виде я много чем UITextField
в один ряд, как так:UIScrollView и клавиатура iOS
Так когда клавиатура закрыта, и я нажимаю на «Via» UITextField
со следующими методами:
- (void)keyboardWasShown:(NSNotification*)aNotification {
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
float bottom = 0.0;
bottom = kbSize.height;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, bottom + 50, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
CGRect aRect = self.view.frame;
aRect.size.height -= bottom + 50;
if (!CGRectContainsPoint(aRect, activeField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(0.0, activeField.frame.origin.y - (scrollView.frame.size.height - kbSize.width - 10));
[scrollView setContentOffset:scrollPoint animated:YES];
}
}
- (void)keyboardWillBeHidden:(NSNotification*)aNotification {
UIEdgeInsets contentInsets = UIEdgeInsetsZero;
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
CGPoint scrollPoint = CGPointMake(0.0, 0.0);
[scrollView setContentOffset:scrollPoint animated:YES];
activeField = nil;
}
все работает отлично, и просмотр прокрутки перемещается вверх, чтобы показать UITextField
Я редактирую. Когда клавиатура открыта, и я нажимаю «CAP» UITextField
, прокрутка просматривается, а UITextField
выходит наружу. Я спрашиваю вас, как я могу избежать такого поведения.
ПРИМЕЧАНИЕ: Я не буду использовать внешнюю библиотеку для этого!
Спасибо
Я думаю, вы должны попробовать этот код вверх по Scrollview - (void) textFieldDidBeginEditing: (UITextField *) textField { CGPoint scrollPoint = CGPointMake (0, textField.frame.origin.y-120); [scrollView setContentOffset: scrollPoint animated: YES]; } - (void) textFieldDidEndEditing: (UITextField *) textField { [scrollView setContentOffset: CGPointZero animated: YES]; } – Birendra
вы должны установить первый размер UItextField вместо 120 – Birendra
, если мой ответ будет работать для вас, тогда скажите мне, чтобы я мог опубликовать его – Birendra