首页 » iOS 开发 » ios 去掉屏幕键盘的方法, 支持 UITableView

ios 去掉屏幕键盘的方法, 支持 UITableView

作者: 低调的术木 分类: iOS 开发 发布时间: 2014-06-15 08:54 ė浏览 2,722 次 6没有评论

在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];
}

本文出自 蓝天笔记,转载时请注明出处及相应链接。

本文永久链接: http://ubluesky.com/archives/444

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部