iOS: 让键盘消失的的4种方法
2015-07-26 21:11
239 查看
在iOS app中,只要用到编辑框(UITextField)的地方,就得处理键盘消失 (dismiss keyboard)。
我先后用过4种方法,来处理键盘消失的问题。
1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder); 这种通过delegate释放键盘的代码如下:
- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES;}
以下3种方法是通过 响应事件来处理的:
2. 通过 Done键的 DidonExit method,来 resignFirstResponder;
3. 点击编辑框的背景图,让键盘消失。 方法: 将背景view 设为: UIControll。 UIView本身不能响应事件,而UIcontroll 是可以响应事件的。 UIControll 继承于 UIView; 通过调用 UIControll的 Touch Down 事件,让键盘消失;
4. 放置一个 UIButton ,将这
4000
个UIButton 布满全屏,当点击非编辑区域时,其实就是点击这个巨型的Button。 在这个button 事件中, resignFirstResponder 即可。
- (IBAction)backgroundTap:(id)sender { [self.nameTextField resignFirstResponder]; [self.passwordTextField resignFirstResponder];}说明: 这个method 模拟了用户的两种行为: 1. 点击keyboard上的 done 键 ,让键盘消失; 2. 点击 编辑框以外的区域, 让键盘消失。
特别说明一点: 通过布满全屏的Button ,这种方法要求: 这个巨型的Button 一定要放在最底层。 否则的话,编辑框将无法接受输入的事件。
方案点评:UITextFieldDelegate 和 UIControll 方案,处理键盘消失问题,这是一种大智慧。 而巨型 Button 和 didOnExit 方法,虽然也能用,但从软件编程思想上看,只能算是一种小聪明罢了。
小结:只要有输入框存在,就得处理如何让键盘消失的问题。 当然,你可以仅仅处理 点击“done”按钮,来让键盘消失。 但为了让用户有更好的体验, 需要同时处理 非编辑框的区域的事件响应。
我先后用过4种方法,来处理键盘消失的问题。
1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder); 这种通过delegate释放键盘的代码如下:
- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES;}
以下3种方法是通过 响应事件来处理的:
2. 通过 Done键的 DidonExit method,来 resignFirstResponder;
3. 点击编辑框的背景图,让键盘消失。 方法: 将背景view 设为: UIControll。 UIView本身不能响应事件,而UIcontroll 是可以响应事件的。 UIControll 继承于 UIView; 通过调用 UIControll的 Touch Down 事件,让键盘消失;
4. 放置一个 UIButton ,将这
4000
个UIButton 布满全屏,当点击非编辑区域时,其实就是点击这个巨型的Button。 在这个button 事件中, resignFirstResponder 即可。
- (IBAction)backgroundTap:(id)sender { [self.nameTextField resignFirstResponder]; [self.passwordTextField resignFirstResponder];}说明: 这个method 模拟了用户的两种行为: 1. 点击keyboard上的 done 键 ,让键盘消失; 2. 点击 编辑框以外的区域, 让键盘消失。
特别说明一点: 通过布满全屏的Button ,这种方法要求: 这个巨型的Button 一定要放在最底层。 否则的话,编辑框将无法接受输入的事件。
方案点评:UITextFieldDelegate 和 UIControll 方案,处理键盘消失问题,这是一种大智慧。 而巨型 Button 和 didOnExit 方法,虽然也能用,但从软件编程思想上看,只能算是一种小聪明罢了。
小结:只要有输入框存在,就得处理如何让键盘消失的问题。 当然,你可以仅仅处理 点击“done”按钮,来让键盘消失。 但为了让用户有更好的体验, 需要同时处理 非编辑框的区域的事件响应。
相关文章推荐
- 它们的定义iOS双击Home截图按键开关
- iOS-NSDate之今天,昨天,这周,这个月,上个月
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记39 Alert&ActionSheet
- iostream
- IOS文件下载
- IOS存储目录documents你在哪里啊
- iOS 单例模式 (设计模式一)
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- ios把BOOL和OC对象互换
- IOS:relationship between a CALayer's position and anchorPoint properties
- IOS resizableImageWithCapInsets 拉伸图片时出现变形不成功
- ios 开发之协议,非正式协议,委托(代理)区别
- ios学习笔记--(c基础题8.万年历小系统)
- iOS弹幕基本实现及原理介绍
- iOS 数组遍历删除元素的问题
- label富文本
- iOS method swizzling
- ios沙箱路径的查看和使用
- iOS- 多线程技术的概述及优点
- iOS编程 悬浮界面的添加