实现这个功能很简单,只需要在整个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方面的学习网站
A、http://www.raywenderlich.com/ 国外的,很多文章附完整工程的源代码,好像免注册即可下载附件,这个是很多国内网站做不到的:P
B、http://code4app.com/ 国内的,源代码分享站点,免注册即可下载,运营团队这种乐于分享的精神可嘉!
C、http://www.cocoachina.com/ 这个网站就不用说了!非常不错的一个苹果开发技术交流分享学习平台!
D、http://stackoverflow.com/ 国外的,我上网搜索iOS方面的问题解决方法时,都会搜索到这个网站。它应该算是国外一个非常热的技术交流网站吧!