UITextFiled也挺常用的,用于输入文本,一般用于登录界面,输入账号密码,验证码等。让我们来看下这个玩意的基本属性.
这些属性都是个取所求,也比较简单,大家可以自己尝试下。
UITextField的收起键盘的方法
打开键盘是 [_testTextField becomeFirstResponder];
收起键盘是 [_testTextField resignFirstResponder];
1.用代理方法收起键盘的好处有两点:
1).当当前页面有多个textField时,只要设置同一个代理,就可以收起键盘。
2).代码简单明了,只需按键盘上的return就可以收回
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];//收起键盘
return YES;
}// called when 'return' key pressed. return NO to ignore.该方法在键盘输入return时调用
2.点击textField之外的区域收起键盘
这个方法也比较常用,很多APP都是采用这种方式,如微信,qq,因为聊天时输入框就一个,因此用这种方式收回键盘非常方便。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {//触摸事件中的触摸结束时会调用
if (![_testTextField isExclusiveTouch]) {//判断点击是否在textfield和键盘以外
[_testTextField resignFirstResponder];//收起键盘
}
}
个人感觉这个方法适合当前视图中只有一个textfield,如果有多个,那判断条件会有点复杂,不如用代理。
3.用控制事件点击UITextField内部收起键盘
UITextField的父类是UIControl,既然是这类,就可以添加事件。
[_testTextField addTarget:self action:@selector(tapAction) forControlEvents:UIControlEventTouchDown];//添加点击事件,- -,这里我试了下touchupinside并不可以,touchdown的效果更好一些
- (void)tapAction {//事件点击动作
[_testTextField resignFirstResponder];
}
这个方法乍一看好像会永远弹不出键盘,因为点击就是收起,但是事实呢,并不会,点击TextField可以切换显示或隐藏键盘,也非常方便!
希望这几种收起键盘的方式对大家有帮助,谢谢!