。m文件:
如果只要简单实现编辑功能 实现UITextFieldDelegate的某些相关方法就行
#pragma mark - UITextFieldDelegate method
-(void)textFieldDidBeginEditing:(UITextField *)textField{//先于键盘通知事件执行
editRect = textField.frame;
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
NSString *dd = @"dfdfd";
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
在- (void)viewDidLoad中注册键盘通知事件:在ios4.0和5.0中都有用 通过测试模拟器的
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillShow:) name:UIKeyboardWillShowNotification object:nil];//键盘将要显示的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillHidden:) name:UIKeyboardWillHideNotification object:nil];//键盘将要隐藏的通知
-(void)keyBoardWillShow:(NSNotification *)notif{
NSDictionary *info = [notif userInfo];
NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];
CGSize keyboardSize = [value CGRectValue].size;
//整个UIViewControll中加一个scrollView控件 然后再把各种控件放在其中就行
NSTimeInterval animation = 0.50f;
[UIView beginAnimations:@"animal" context:nil];
[UIView setAnimationDuration:animation];
CGRect scrollViewFrame = [mainScroll frame];
scrollViewFrame.size.height -= (keyboardSize.height-48);//减去tabBar的高度
CGRect content = [contentView frame];
content.size.height += (keyboardSize.height-48);
contentView.frame = content;
mainScroll.frame = scrollViewFrame;
[mainScroll scrollRectToVisible:editRect animated:YES];
[UIView commitAnimations];
}
-(void)keyBoardWillHidden:(NSNotification *)notif{
NSDictionary *info = [notif userInfo];
NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];
CGSize keyboardSize = [value CGRectValue].size;
NSTimeInterval animation = 0.50f;
[UIView beginAnimations:@"animal" context:nil];
[UIView setAnimationDuration:animation];
CGRect scrollViewFrame = [mainScroll frame];
scrollViewFrame.size.height += (keyboardSize.height-48);
mainScroll.frame = scrollViewFrame;
CGRect content = [contentView frame];
content.size.height -= (keyboardSize.height-48);
contentView.frame = content;
[UIView commitAnimations];
}