1、键盘将要出现和消失的通知。(系统自带)
2、在通知的响应方法中改变控件的frame值。
以下是部分代码
- (void)awakeFromNib
{
[super awakeFromNib];
self.title = @"键盘的监听";
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//键盘将要出现的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardPopUp:) name:UIKeyboardWillShowNotification object:nil];
//键盘将要隐藏的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardPackUp:) name:UIKeyboardWillHideNotification object:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)keyBoardPopUp:(NSNotification *)notification
{
NSLog(@"键盘出现");
//获取键盘的高度
CGRect keyBoardRect=[notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat deltaY=keyBoardRect.size.height;
[UIView animateWithDuration:[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{
self.textField.bottom = screenHeight-deltaY;
}];
}
- (void)keyBoardPackUp:(NSNotification *)notification
{
NSLog(@"键盘消失");
[UIView animateWithDuration:[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{
self.textField.bottom = screenHeight-100;
}];
}
- (IBAction)packupKeyBoard:(UIButton *)sender {
[_textField resignFirstResponder];
}