iOS隐藏键盘的几种方式
2014-02-19 14:47
459 查看
因为开发中经常要用到textField和textView,在某些情形下隐藏键盘很有必要,而隐藏键盘有多种方式,在合适的场景下用合适的方式隐藏就显得很重要,我也老是记不起来有哪些方法,这里就记录一下,以备查找。
首先,我想到的也是最常用的,实现UITextFieldDelegate的代理方法:
其次,我想到了点击界面的其他空白区域来隐藏,而这种方式又有多种实现,下面来依次记录一下:
第一种,是修改控制器的UIView为UIControl,然后设置UIControl的单击事件,并实现之。
首先设置xib中得UIView的Custom class为UIControl,然后拖拽xib中得UIView拖到.h区中,生成一个Action,事件为touchUpInside,
第二种,不用修改UIView,而是利用手势,给UIView添加一个点击的手势,来控制键盘的隐藏。
第三种,比较麻烦点,我只记录个思路,自定义一个UIView,然后实现view的touchesBegan:触摸事件
总结,其实就是想办法调用这两个方法
1、[view endEditing:YES] 这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏。
2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。
当然,还可以自己调整键盘的frame来隐藏,这种方法就显得太麻烦了,而没有必要。
首先,我想到的也是最常用的,实现UITextFieldDelegate的代理方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; }
其次,我想到了点击界面的其他空白区域来隐藏,而这种方式又有多种实现,下面来依次记录一下:
第一种,是修改控制器的UIView为UIControl,然后设置UIControl的单击事件,并实现之。
首先设置xib中得UIView的Custom class为UIControl,然后拖拽xib中得UIView拖到.h区中,生成一个Action,事件为touchUpInside,
- (IBAction)touchView:(id)sender { [self.view endEditing:YES]; }
第二种,不用修改UIView,而是利用手势,给UIView添加一个点击的手势,来控制键盘的隐藏。
- (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide)]; //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。 tapGestureRecognizer.cancelsTouchesInView = NO; //将触摸事件添加到当前view [self.view addGestureRecognizer:tapGestureRecognizer]; } - (void)keyboardHide { [self.view endEditing:YES]; }
第三种,比较麻烦点,我只记录个思路,自定义一个UIView,然后实现view的touchesBegan:触摸事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [textFiled resignFirstResponder]; //或者下面这种方式 [self.view endEditing:YES]; }
总结,其实就是想办法调用这两个方法
1、[view endEditing:YES] 这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏。
2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。
当然,还可以自己调整键盘的frame来隐藏,这种方法就显得太麻烦了,而没有必要。
相关文章推荐
- iOS隐藏键盘的几种方式
- ios-同步下载与异步下载
- IOS 单例
- ios开发,---学习项目
- ios开发---注意事项
- ios开发---常见问题
- ios开发---隐藏StatusBar
- ios屏幕旋转
- ios 开发 ---动画
- PhoneGap官网翻译 iOS开发常见问题文档
- Quartus:instantiates undefined entity错误
- ios --- Tabbar 的图标模糊问题
- iOS7控键变化及页面效果
- ios7版 30天精通iPhone手机编程第27-30天
- 粗糙的iOS笔记之数据存储
- 为什么选安卓不选IOS-兼谈安卓为什么慢和耗电
- 屏幕旋转学习笔记
- IOS:屏幕旋转与Transform
- IOS杂谈
- iOS 使用Quartz 2D画虚线