文档章节

IOS7 点击空白处隐藏键盘的几种方法

W
 Who_Care_Who
发布于 2015/09/06 16:18
字数 493
阅读 12
收藏 0

IOS7 点击空白处隐藏键盘的几种方法


IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法:


首先说明两种可以让键盘隐藏的Method:

1、[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏。

2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。


接下来就是几种实现方式:

第一种: 使用view的touchesBegan:触摸事件来实现对键盘的隐藏,当点击view的区域就会触发这个事件

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  

  2.     [textFiled resignFirstResponder];  

  3. }  


第二种:创建自定义的触摸手势来实现对键盘的隐藏:

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. - (void)viewDidLoad  

  2. {  

  3.     [super viewDidLoad];  

  4.     UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];  

  5.     //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。  

  6.     tapGestureRecognizer.cancelsTouchesInView = NO;  

  7.     //将触摸事件添加到当前view  

  8.     [self.view addGestureRecognizer:tapGestureRecognizer];  

  9. }  

  10.   

  11. -(void)keyboardHide:(UITapGestureRecognizer*)tap{  

  12.     [textFiled resignFirstResponder];  

  13. }  


第三种:修改xib中UIView的Custom class为UIControl,UIControl是一些常用控件如UIButton的父类,是UIView的派生类,实现了对触摸和下按的封装。

1、首先设置xib中得UIView的Custom class为UIControl


2、设置关系事件,将xib中得UIView拖到.h区中

设置好事件为Touch Up Inside

3、编写隐藏代码:

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. - (IBAction)touchView:(id)sender {  

  2.      [self.view endEditing:YES];  

  3. }  


好了,以上是三种比较常用的隐藏键盘的方法,每种都可以用于不同的场合和它的利与弊,就看如何运用了。


本文转载自:

W
粉丝 1
博文 69
码字总数 28284
作品 0
海淀
私信 提问
iOS开发之UITextField

UITextField展示的是一些可编辑的内容,并且与用户有一些交互。比如当你在虚拟键盘上按下return键时,一般会关联到键盘隐藏事件上。UITextField的一些状态大多在UITextFieldDelegate协议中有...

code_free
2014/07/21
625
0
1.8 Illustrator标尺的使用 [Illustrator CC教程]

在设计过程中会经常使用标尺对设计版式、内容进行精确的定位。在默认状态下,系统不显示标尺。依次点击[视图 > 标尺 > 显示标尺]命令。 点击[显示标尺]命令,将显示水平标尺和垂直标尺。 接着...

fzhlee
2018/04/08
0
0
UIScrollView中的UITableView接收不到点击事件

一个UIScrollView中有若干个UITextfield,为了能在空白处点击能隐藏键盘,加了UITapGestureRecognizer事件,结果导致同样在UIScrollView里的UITableView接收不到didSelectRowAtIndexPath调用...

yoyoso
2015/03/19
3.9K
0
ios实现点击空白处关闭键盘

写了个小应用,遇到了点击空白处不能关闭键盘的问题以及切换view会导致home页面先上去再下来的问题。把解决的办法记下来 主要使用了一个navigation。view也只有两级。如下图所示 遇到的问题是...

Jack鸿燊
2015/09/23
2.5K
0
iOS开发实战——CollectionView点击事件与键盘隐藏结合案例

版权声明:本文为博主原创文章,欢迎分享到其它技术社区,分享请标明出处: https://blog.csdn.net/CHENYUFENG1991/article/details/51588209 在我们的实际开发中,CollectionView是一种非常...

乞力马扎罗的雪CYF
2016/06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部