zoukankan      html  css  js  c++  java
  • 点击其他任何地方,收回键盘

    基本思想如下:
    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];

    }

  • 相关阅读:
    Eclipse常见配置及常用插件
    杂记
    表单双引号问题
    兼容ie的jquery ajax文件上传
    Markdown 學習
    jstl c标签
    java 在接口里函数不能重载?
    【转】Eclipse里项目名有红叉,但是展开后里面又没有红叉叉
    Android性能优化之一:ViewStub
    Merge用法
  • 原文地址:https://www.cnblogs.com/Jordandan/p/5013107.html
Copyright © 2011-2022 走看看