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