现在的位置: 首页 > 综合 > 正文

让iOS键盘在用户点击其它区域的时候隐藏

2013年06月22日 ⁄ 综合 ⁄ 共 1577字 ⁄ 字号 评论关闭

实现这个功能很简单,只需要在整个view上创建一个UITapGestureRecognizer


{//tap gr

    UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];

    tapGr.cancelsTouchesInView =NO;

    [self.view addGestureRecognizer:tapGr];

    [tapGr release];

}


-(void)viewTapped:(UITapGestureRecognizer*)tapGr{

    [self.theTextField resignFirstResponder];

}


在这样操作之后,当用户点击键盘以外空白区域的时候,就能自动隐藏键盘了。

下面这句代码挺重要,因为如果没有这一句,在view中的button等可能会无法触发TouchUpInside事件。


tapGr.cancelsTouchesInView =NO;


备注;原文地址“http://blog.unieagle.net/2012/08/14/让ios键盘在用户点击其它区域的时候隐藏/”。



**** **** **** **** **** **** **** **** **** **** **** **** **** 

补充:

一、以下是本人的读后感:

我看到过几种不同的实现方法:

(1)将一个UIButton作为背景(全屏),增加其响应函数:

- (IBAction)backgroundTapped:(id)sender

{

    [self.field1resignFirstResponder];

}

详细请参阅下面的讨论帖子:

http://forums.macrumors.com/showthread.php?t=1044034


(2)通过UIGestureRecognizer类的子类“”响应单击消息,从而实现隐藏键盘。上面所转载的文章就是采用此方法。关于“UIGestureRecognizer”类以及用法,请参考以下网址的文章:

A、《ios的手势操作之UIGestureRecognizer浅析》http://blog.csdn.net/likendsl/article/details/7554150 

B、《使用iOS手势UIGestureRecognizer》      http://www.cocoachina.com/bbs/read.php?tid=105316

C、另外还有一个篇英文文章“UIGestureRecognizer Tutorial in iOS 5: Pinches, Pans, and More!”    http://www.raywenderlich.com/6567/uigesturerecognizer-tutorial-in-ios-5-pinches-pans-and-more

文末附有完整工程的源代码下载地址,可以下载自己编译一遍。


二、几个不错的iOS方面的学习网站

Ahttp://www.raywenderlich.com/        国外的,很多文章附完整工程的源代码,好像免注册即可下载附件,这个是很多国内网站做不到的 :P

Bhttp://code4app.com/ 
               国内的,源代码分享站点,免注册即可下载,运营团队这种乐于分享的精神可嘉!

Chttp://www.cocoachina.com/ 
         这个网站就不用说了!非常不错的一个苹果开发技术交流分享学习平台!

Dhttp://stackoverflow.com/            国外的,我上网搜索iOS方面的问题解决方法时,都会搜索到这个网站。它应该算是国外一个非常热的技术交流网站吧!




抱歉!评论已关闭.