使用广播通知,在viewWillAppear时注册键盘打开和关闭的事件监听,在viewWilldisappear时解除键盘打开和关闭的事件监听。请注意viewWillAppear和viewWilldisappears事件触发的时机。
在ViewController.m中添加如下四个方法。
-(void) viewWillAppear:(BOOL)animated {
NSLog(@"viewWillAppear:在ViewController初始化之后,进入活动状态之前");
//注册键盘出现通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (keyboardShow:)
name: UIKeyboardDidShowNotification object:nil];
//注册键盘隐藏通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (keyboardHide:)
name: UIKeyboardDidHideNotification object:nil];
[super viewWillAppear:animated];
}
-(void) viewWillDisappear:(BOOL)animated {
NSLog(@"viewWillDisappear:在ViewControler终止或进入后台之前");</span>
//解除键盘出现通知
[[NSNotificationCenter defaultCenter] removeObserver:self
name: UIKeyboardDidShowNotification object:nil];
//解除键盘隐藏通知
[[NSNotificationCenter defaultCenter] removeObserver:self
name: UIKeyboardDidHideNotification object:nil];
[super viewWillDisappear:animated];
}
//自定义键盘打开时触发的事件
-(void) keyboardShow: (NSNotification *)notif {
NSLog(@"keyboardShow键盘打开");
}
//自定义键盘关闭时触发的事件
-(void) keyboardHide: (NSNotification *)notif {
NSLog(@"keyboardHide键盘关闭");
}