[Edit:] The problem has been solved. I did not have my delegates linked properly in UIBuilder
. Code is good!
I am trying to resize a scrollview when the keyboard appears. I went to the developer docs and found this information.
On the left "Managing the keyboard".
In the documentation it shows a bit of code to detect the size of the keyboard and then to resize a UIScrollView
. I have placed an NSLog
message in the code for function - (void)keyboardWasShown:(NSNotification*)aNotification
so I see that the function is actually being called, but when I try to to NSLog
the kbSize
.height it is always valued at 0.
Why does the code that apple provide for this purpose not work?
- (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];
}
}