首先在 - (void)viewDidLoad 中添加下面代码,用于监听键盘是否呼出。顺带给self.view添加手势,用于点击界面可以收回键盘。
//监听键盘是否呼出
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(upViews:) name:UIKeyboardWillShowNotification object:nil];
//添加手势
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction)];
[self.view addGestureRecognizer:tap];
然后再实现这两个方法就行了
#pragma mark - 键盘弹出时界面上移及还原
-(void)upViews:(NSNotification *) notification{
//获取键盘的高度
NSDictionary *userInfo = [notification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
int keyBoardHeight = keyboardRect.size.height;
//使视图上移
CGRect viewFrame = self.view.frame;
viewFrame.origin.y = -keyBoardHeight;
self.view.frame = viewFrame;
}
-(void)tapAction{
if ([contentTextView isFirstResponder]&&UIKeyboardDidShowNotification)
{
[contentTextView resignFirstResponder];
//使视图还原
CGRect viewFrame = self.view.frame;
viewFrame.origin.y = 0;
self.view.frame = viewFrame;
}
}