视图出现时,增加观察
- (void)viewWillAppear:(BOOL)animated
{
// 增加对键盘的监听
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasHidden:)
name:UIKeyboardWillHideNotification object:nil];
}
#pragma mark -- 与键盘监听相关的方法
- (void)keyboardWasShown:(NSNotification *)notification
{
// 获取键盘高度
CGRect keyBoardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat keyBoardH = keyBoardFrame.size.height;
CGFloat y = keyBoardH - 120 - self.bottomLayout.constant;
// 通过改变contentInset的heigh来使textView的字可以跟着移动
self.contentTextView.contentInset = UIEdgeInsetsMake(0, 0, y, 0);
}
// 键盘消失时 重新改回原来的contentInsert
- (void)keyboardWasHidden:(NSNotification *)notification
{
self.contentTextView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
}
视图消失时,移除观察
- (void)viewDidDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}