GeekBand.iOS-键盘回收

2016/3/21 posted in  iOS学习笔记  

我们在程序中经常涉及使用系统键盘录入数据,但是iOS并没有提供一个默认的键盘回收方案。经过查阅网络以及实验,总结以下几种键盘回收方案:

触摸空白处回收键盘

  1. 点击View空白处实现对键盘的隐藏
    覆盖UIViewController的touchBegan方法

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
        //[self.view endEditing:YES];
        [textFiled resignFirstResponder]; 
    }
    
  2. 创建自定义的触摸手势来实现对键盘的隐藏

    -(void)viewDidLoad{  
        [super viewDidLoad];  
        UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];  
        //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。  
        tapGestureRecognizer.cancelsTouchesInView = NO;  
        //将触摸事件添加到当前view  
        [self.view addGestureRecognizer:tapGestureRecognizer];  
    }  
    
    -(void)keyboardHide:(UITapGestureRecognizer*)tap{  
        [textFiled resignFirstResponder];  
    }  
    
  3. 修改xib中UIView的Custom class为UIControl,UIControl是一些常用控件如UIButton的父类,是UIView的派生类,实现了对触摸和下按的封装。
    1.首先设置xib中得UIView的Custom class为UIControl
    2.设置关系事件,将xib中得UIView拖到.m区中设置好事件为Touch Up Inside
    3、编写隐藏代码:

    -(IBAction)touchView:(id)sender {  
        [self.view endEditing:YES];  
    }