UITextField是ios中实用频率很高的额控件,文本输入之后通常需要隐藏软键盘,而隐藏的原理都是通过使得UITextField失去第一响应者,以下是几种隐藏的方式。
第一种:通过设置代理UITextFieldDelegate, 并在 -(BOOL)textFieldShouldReturn:(UITextField *)textField里面使得空间失去第一响应者:
@interface KCLoginViewController ()<UITextFieldDelegate>{
UITextField *_txtUserName;
}
- (void)viewDidLoad {
//创建
_txtUserName,并添加到视图上
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
{
{
[_txtUserName resignFirstResponder];// 失去第一响应者
return YES;
}
return YES;
}
点击键盘灯额“return”键是不是能将键盘隐藏了!
第二种:上面的方法有一个问题就是,有些情况下键盘是没有‘return’键的,那怎么隐掉键盘呢?
平常的app通过点击空白处也可以隐掉键盘,怎么实现的呢?其实有很几种方式都能解决:在view的上面铺个UIControl,或是铺个大大的UIbutton,抑或添加触摸事件
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event来实现都是可以的。
首先说说在view的上面铺个UIControl:
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
UIControl *controlView = [[UIControl alloc] initWithFrame:self.view.frame];
[self.view addSubview:controlView];
[controlView addTarget:self action:@selector( hiddleKeyboard) forControlEvents:UIControlEventTouchUpInside];
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
UIControl *controlView = [[UIControl alloc] initWithFrame:self.view.frame];
[self.view addSubview:controlView];
[controlView addTarget:self action:@selector( hiddleKeyboard) forControlEvents:UIControlEventTouchUpInside];
//[self layoutUI];
}
-(void)hiddleKeyboard{
[_txtUserName resignFirstResponder];//失去第一响应者
}
现在点击屏幕的空白处键盘是不是隐藏了!
上面这两种方法用得比较多。