一.监听键盘的弹出和退出(键盘的高度和弹出时间可用来做动画)
// 监听键盘的通知
[NSNotificationCenter addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[NSNotificationCenter addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
/**
* 键盘即将显示的时候调用
*/
- (void)keyboardWillShow:(NSNotification *)note
{
// 1.取出键盘的frame
CGRect keyboardF = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
// 2.取出键盘弹出的时间
CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
// 3.执行动画
[UIView animateWithDuration:duration animations:^{
self.toolbar.transform = CGAffineTransformMakeTranslation(0, -keyboardF.size.height);
}];
}
/**
* 键盘即将退出的时候调用
*/
- (void)keyboardWillHide:(NSNotification *)note
{
// 1.取出键盘弹出的时间
CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
// 2.执行动画
[UIView animateWithDuration:duration animations:^{
self.toolbar.transform = CGAffineTransformIdentity;
}];
}
二、成为第一响应者和取消第一响应者
1.取消第一响应者
[self.view endEditing:YES];//view或view的子控件都取消第一响应者
或[self.textView resignFirstResponder];//直接让控件取消第一响应者
2.成为第一响应者
[self.textView becomeFirstResponder];