ios 中键盘自动隐藏
2015-11-18 17:39
417 查看
实现隐藏的两种方法:
在IOS中有一个概念叫First Responder,意指第一响应者,也就是当前屏幕上,处于焦点状态的控件,它是第一响应者,我们在界面的触摸的各种手势都是由这个控件接收的。那么很好理解,当用户点击一个输入框之后,弹出输入键盘,此时这个文本输入框便是第一响应者,那现在要隐藏键盘,其实就是不让这个文本输入框作为第一响应者。 文本输入框为我们提供了这么一个方法:resignFirstResponser
?
当有很多输入框时,我们还可以使用UIView提供一个就更快的方法:endEditing
?
如何触发
知道了如何让键盘隐藏,那就要在恰当时机去执行它。通常有两种方法: 1)键盘右下角的return、完成按钮被点下时
2)输入框周围的空白区域被点击时
第一种方法,需要处理输入框的DidEndOnExit事件:
?
第二种方法,当点击空白区域时,键盘自动隐藏,一般这个空白区域就是一个UIView,我们需要让UIView响应点击(tap)事件,但是要知道响应事件是UIControl的事情,所以,我们需要把这个UIView改成UIControl,因为UIControl是UIView的子类,所以完全可行!
![](http://static.oschina.net/uploads/img/201509/01232025_lEIo.png)
把View的Class改成UIControl,那么这个View就能像UIControl那些控件一样,可以接收点击事件了。
![](http://static.oschina.net/uploads/img/201509/01232026_eCsT.png)
我们处理这个大Control的Touch Down事件:
?
这里仅争对使用普通UIView的界面,当使用UTableViewController时,就不能用这种方法咯,需要手动创建一个手势识别器,将它关联到整个UITableViewController。
使用UITableViewControl这种控件时如何触发
要知道,手势识别器可以很灵活的关联到任意一个View上,所以我们可以为UITableViewController创建一个UITapGestureRecognizer的点击识别器。 在ViewDidLoad方法中写入:
?
相关文章推荐
- iOS之 Mac下抓包工具使用wireshark
- iOS9项目打包上线
- iOS 数据保存4种方式总结
- iOS 键盘变中文
- Xcode7以后断点调试会经常出现要调试的对象为nil,但是当你打印时值是存在的,解决办法
- iOS程序中添加字体
- iOS 开发之全局特性设置
- 欢迎使用CSDN-markdown编辑器
- ios ViewController 页面跳转
- 对IOS中NSStream与Socket的理解
- iOS中线程Call Stack的捕获和解析(二)
- iOS中线程Call Stack的捕获和解析(一)
- AFNetworking 传cookie
- ios 开发日记 22-iOS 保持界面流畅的技巧
- iOS应用逆向工程(五):利用Cycript 定位目标函数
- iOS7以后 视图Frame坐标起点发生的变化
- iOS开源框架 JCPullToSelect
- 提高IOS开发效率的工具
- iOS开发之CocoaPods的安装与使用
- iOS collectionViewLayout布局和自定义