iOS解决TextField被键盘遮住的问题
2013-06-28 13:56
513 查看
首先,我们在ViewController.h中
@interface ViewController :
UIViewController<UITextFieldDelegate>
@property (strong,
nonatomic) UIScrollView* scrollView;
@property (strong,
nonatomic) UITextField* textField;
@end
之后在ViewController.m
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
self.scrollView = [[UIScrollViewalloc]
initWithFrame:CGRectMake(0,
0, 320,
600)];
[self.viewaddSubview:self.scrollView];
self.textField = [[UITextFieldalloc]
initWithFrame:CGRectMake(50,
400, 100,
30)];
self.textField.backgroundColor = [UIColorwhiteColor];
[self.scrollViewaddSubview:self.textField];
[[NSNotificationCenterdefaultCenter]
addObserver:selfselector:@selector(textShowBegin:)
name:UIKeyboardWillShowNotificationobject:nil];
[[NSNotificationCenterdefaultCenter]
addObserver:selfselector:@selector(keyBoardDidHidden)
name:UIKeyboardWillHideNotificationobject:nil];
[self.textFieldaddTarget:selfaction:@selector(textFieldResign)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
-(void)keyBoardDidHidden
{
self.scrollView.contentInset =
UIEdgeInsetsZero;
}
-(void)textFieldResign
{
[self.textFieldresignFirstResponder];
}
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
self.textField = textField;
}
-(void)textShowBegin:(NSNotification*)aNotification
{
NSDictionary* info = aNotification.userInfo;
NSLog(@"%@",info);
CGSize kbSize = [[info
objectForKey:UIKeyboardFrameBeginUserInfoKey]
CGRectValue].size;
UIEdgeInsets contentInsets =
UIEdgeInsetsMake(0, 0, kbSize.height,
0);
self.scrollView.contentInset = contentInsets;
//获取整个视图的大小和位置
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (!CGRectContainsPoint(aRect,
self.textField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(0,
self.textField.frame.origin.y - kbSize.height);
[self.scrollViewsetContentOffset:scrollPoint
animated:YES];
}
}
下载地址 "TextFieldKB1119.zip" http://vdisk.weibo.com/s/Et2R_
本文出自 “7087095” 博客,请务必保留此出处http://7097095.blog.51cto.com/7087095/1222128
@interface ViewController :
UIViewController<UITextFieldDelegate>
@property (strong,
nonatomic) UIScrollView* scrollView;
@property (strong,
nonatomic) UITextField* textField;
@end
之后在ViewController.m
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
self.scrollView = [[UIScrollViewalloc]
initWithFrame:CGRectMake(0,
0, 320,
600)];
[self.viewaddSubview:self.scrollView];
self.textField = [[UITextFieldalloc]
initWithFrame:CGRectMake(50,
400, 100,
30)];
self.textField.backgroundColor = [UIColorwhiteColor];
[self.scrollViewaddSubview:self.textField];
[[NSNotificationCenterdefaultCenter]
addObserver:selfselector:@selector(textShowBegin:)
name:UIKeyboardWillShowNotificationobject:nil];
[[NSNotificationCenterdefaultCenter]
addObserver:selfselector:@selector(keyBoardDidHidden)
name:UIKeyboardWillHideNotificationobject:nil];
[self.textFieldaddTarget:selfaction:@selector(textFieldResign)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
-(void)keyBoardDidHidden
{
self.scrollView.contentInset =
UIEdgeInsetsZero;
}
-(void)textFieldResign
{
[self.textFieldresignFirstResponder];
}
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
self.textField = textField;
}
-(void)textShowBegin:(NSNotification*)aNotification
{
NSDictionary* info = aNotification.userInfo;
NSLog(@"%@",info);
CGSize kbSize = [[info
objectForKey:UIKeyboardFrameBeginUserInfoKey]
CGRectValue].size;
UIEdgeInsets contentInsets =
UIEdgeInsetsMake(0, 0, kbSize.height,
0);
self.scrollView.contentInset = contentInsets;
//获取整个视图的大小和位置
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (!CGRectContainsPoint(aRect,
self.textField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(0,
self.textField.frame.origin.y - kbSize.height);
[self.scrollViewsetContentOffset:scrollPoint
animated:YES];
}
}
下载地址 "TextFieldKB1119.zip" http://vdisk.weibo.com/s/Et2R_
本文出自 “7087095” 博客,请务必保留此出处http://7097095.blog.51cto.com/7087095/1222128
相关文章推荐
- iOS解决TextField被键盘遮住的问题
- IOS开发键盘弹出时遮住输入框的问题的一种解决方法。
- 打开键盘遮住View的问题解决方法-IOS开发
- 打开键盘遮住View的问题解决方法-IOS开发
- 打开键盘遮住View的问题解决方法-IOS开发
- 打开键盘遮住View的问题解决方法-IOS开发
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- iOS 解决表单被键盘遮住的问题
- 打开键盘遮住View的问题解决方法-IOS开发
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- UITextField 详解-- IOS (解决键盘遮住view及密文設定的问题实例)
- 打开键盘遮住View的问题解决方法-IOS开发
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- iOS 解决textField被键盘挡住的问题的方法有三个:
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- 打开键盘遮住View的问题解决方法-IOS开发
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- 打开键盘遮住View的问题解决方法-IOS开发
- ios 解决textfield无法自动弹出键盘问题
- iOS解决键盘遮挡TextFiled的问题