iOS隐藏键盘的几种方式

因为开发中经常要用到textField和textView,在某些情形下隐藏键盘很有必要,而隐藏键盘有多种方式,在合适的场景下用合适的方式隐藏就显得很重要,我也老是记不起来有哪些方法,这里就记录一下,以备查找。

首先,我想到的也是最常用的,实现UITextFieldDelegate的代理方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{   
       	[textField resignFirstResponder];   
	return YES;
}

其次,我想到了点击界面的其他空白区域来隐藏,而这种方式又有多种实现,下面来依次记录一下:

第一种,是修改控制器的UIView为UIControl,然后设置UIControl的单击事件,并实现之。

首先设置xib中得UIView的Custom class为UIControl,然后拖拽xib中得UIView拖到.h区中,生成一个Action,事件为touchUpInside,

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

第二种,不用修改UIView,而是利用手势,给UIView添加一个点击的手势,来控制键盘的隐藏。

- (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
{  
    [self.view endEditing:YES]; 
}

第三种,比较麻烦点,我只记录个思路,自定义一个UIView,然后实现view的touchesBegan:触摸事件

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
    [textFiled resignFirstResponder]; 
    //或者下面这种方式
    [self.view endEditing:YES]; 
}


 
 
总结,其实就是想办法调用这两个方法 

1、[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏。

2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。

当然,还可以自己调整键盘的frame来隐藏,这种方法就显得太麻烦了,而没有必要。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值