[Изменить] Проблема решена. У меня не было должным образом связаны мои делегаты в UIBuilder
. Код хороший!Перемещение UIScrollView при вводе клавиатуры
Я пытаюсь изменить размер прокрутки при появлении клавиатуры. Я пошел в документы разработчика и нашел эту информацию.
Слева "Управление клавиатуры".
В документации в нем содержится немного кода для определения размера клавиатуры, а затем для изменения размера UIScrollView
. Я поместил NSLog
сообщений в коде функции - (void)keyboardWasShown:(NSNotification*)aNotification
, так что я вижу, что эта функция фактически вызывается, но когда я пытаюсь, чтобы NSLog
в kbSize
.height она всегда оценивается в 0.
Почему код, яблоко для этой цели не работает?
- (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];
}
}
Спасибо много, что фрагмент коды содержит все, что нужно :) – matehat
Вы можете использовать [KBKeyboardObserver] (https://github.com/kam800/KBKeyboardObserver) библиотеки для наблюдения события клавиатуры. – kam800