1.注册通知
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. // 键盘高度变化通知,ios5.0新增的 #ifdef __IPHONE_5_0 float version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version >= 5.0) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)name:UIKeyboardWillChangeFrameNotification object:nil]; } #endif }
2.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { self.bzView.frame = CGRectMake(0, self.view.bounds.size.height-216-44, 320, 44); return YES; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; self.bzView.frame = CGRectMake(0, self.view.bounds.size.height-44, 320, 44); return YES; } #pragma mark -键盘弹出时调用的方法 #pragma mark Responding to keyboard events - (void)keyboardWillShow:(NSNotification*)notification { NSDictionary *userInfo = [notification userInfo]; // Get the origin of the keyboard when it's displayed. NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; CGRect keyboardRect = [aValue CGRectValue]; self.bzView.frame = CGRectMake(0, self.view.bounds.size.height-keyboardRect.size.height-44, 320, 44); } -(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self];//在视图控制器消除时,移除键盘事件的通知 }