iOS学习之点击屏幕任何地方隐藏键盘实现

在iOS开发中,对UITextField进行编辑的时候键盘会自己弹出来。在编辑完成的时候,需要将键盘隐藏掉。隐藏键盘有很多种实现方法,最常见的是把TextField的firstResponder resign掉。即[textField resignFirstResponder]。本文介绍的是如何在键盘显示的时候,点击屏幕除了键盘以外的任何地方,将键盘隐藏。

基本思想如下:

  1. 在ViewController载入的时候,将键盘显示和消失的Notification添加到self.view里。
  2. 分别在键盘显示和消失时添加和删除TapGestureRecognizer

示例代码如下:

UIViewController的源代码里:

- (void)viewDidLoad
{
    [super viewDidLoad];
  
  [self setUpForDismissKeyboard];
}
- (void)setUpForDismissKeyboard {
  NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
  UITapGestureRecognizer *singleTapGR =
  [[UITapGestureRecognizer alloc] initWithTarget:self
                                          action:@selector(tapAnywhereToDismissKeyboard:)];
  NSOperationQueue *mainQuene =[NSOperationQueue mainQueue];
  [nc addObserverForName:UIKeyboardWillShowNotification
                  object:nil
                   queue:mainQuene
              usingBlock:^(NSNotification *note){
                [self.view addGestureRecognizer:singleTapGR];
              }];
  [nc addObserverForName:UIKeyboardWillHideNotification
                  object:nil
                   queue:mainQuene
              usingBlock:^(NSNotification *note){
                [self.view removeGestureRecognizer:singleTapGR];
              }];
}

- (void)tapAnywhereToDismissKeyboard:(UIGestureRecognizer *)gestureRecognizer {
//此method会将self.view里所有的subview的first responder都resign掉
  [self.view endEditing:YES];
}

感谢:
https://blog.csdn.net/lianbaixue/article/details/11108593

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1)翻译下面的句子: 崔永元的激进行为和大胆评论招致了不少麻烦。 (参考翻译:Cui Yongyuan’s agg...
    江贴心阅读 1,643评论 0 0
  • 很多年后的现在,一路走过毕业、工作、恋爱、失恋、失联的我们,不经意间的联系,就能勾起一长串的过往闪过,老万和我的...
    粉蔓阅读 1,891评论 0 0
  • 看了一期【天桥风云】,是关于服装设计的美国综艺节目,就像歌曲选秀节目一样,由几个资深服装设计师点评新手的服装作品,...
    依盈阅读 1,855评论 0 1

友情链接更多精彩内容