1 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 2 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
View Code
1 - (void)keyboardWillShow:(NSNotification *)notification { 2 NSDictionary *userInfo = [notification userInfo]; 3 NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; 4 CGRect keyboardRect = [aValue CGRectValue]; 5 keyboardRect = [self.view convertRect:keyboardRect fromView:nil]; 6 7 CGFloat keyboardTop = keyboardRect.origin.y; 8 CGRect newTextViewFrame = self.view.bounds; 9 newTextViewFrame.size.height = keyboardTop - self.view.bounds.origin.y; 10 11 NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; 12 NSTimeInterval animationDuration; 13 [animationDurationValue getValue:&animationDuration]; 14 15 [UIView beginAnimations:nil context:NULL]; 16 [UIView setAnimationDuration:animationDuration]; 17 18 self.myTableView.frame = newTextViewFrame; 19 20 [UIView commitAnimations]; 21 } 22 23 24 - (void)keyboardWillHide:(NSNotification *)notification { 25 26 NSDictionary* userInfo = [notification userInfo]; 27 NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; 28 NSTimeInterval animationDuration; 29 [animationDurationValue getValue:&animationDuration]; 30 31 [UIView beginAnimations:nil context:NULL]; 32 [UIView setAnimationDuration:animationDuration]; 33 34 self.myTableView.frame = self.view.bounds; 35 36 [UIView commitAnimations]; 37 }