使用广播通知,在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键盘关闭");
- }