[Редактировать:] Проблема была решена.У меня не было своих делегатов, связанных должным образом в UIBuilder
.Код хороший!
Я пытаюсь изменить размер прокрутки при появлении клавиатуры.Я пошел к документам для разработчиков и нашел эту информацию.
http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW1
Слева "Управление клавиатурой".
В документации показано немного кодаопределить размер клавиатуры и затем изменить UIScrollView
.Я поместил сообщение NSLog
в код для функции - (void)keyboardWasShown:(NSNotification*)aNotification
, поэтому я вижу, что функция на самом деле вызывается, но когда я пытаюсь NSLog
kbSize
.height, оно всегда оценивается в 0.
Почему код, предоставляемый Apple для этой цели, не работает?
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
// If active text field is hidden by keyboard, scroll it so it's visible
// Your application might not need or want this behavior.
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (!CGRectContainsPoint(aRect, activeField.frame.origin) ) {
CGPoint scrollPoint = CGPointMake(0.0, activeField.frame.origin.y-kbSize.height);
[scrollView setContentOffset:scrollPoint animated:YES];
}
}