iOS: 让键盘消失的的4种方法

在iOS app中,只要用到编辑框(UITextField)的地方,就得处理键盘消失 (dismiss keyboard)。
我先后用过4种方法,来处理键盘消失的问题。
1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder); 这种通过delegate释放键盘的代码如下: 

 - (BOOL)textFieldShouldReturn:(UITextField *)textField {

 [textField resignFirstResponder];

 return YES;

}

以下3种方法是通过 响应事件来处理的:

2. 通过 Done键的 DidonExit method,来 resignFirstResponder;

3.  点击编辑框的背景图,让键盘消失。 方法: 将背景view 设为: UIControll。 UIView本身不能响应事件,而UIcontroll 是可以响应事件的。 UIControll 继承于 UIView;  通过调用 UIControll的 Touch Down 事件,让键盘消失;

4. 放置一个 UIButton ,将这个UIButton 布满全屏,当点击非编辑区域时,其实就是点击这个巨型的Button。 在这个button事件中, resignFirstResponder 即可。  

- (IBAction)backgroundTap:(id)sender {

    [self.nameTextField resignFirstResponder];

  [self.passwordTextField resignFirstResponder];

}

说明: 这个method 模拟了用户的两种行为: 

1. 点击keyboard上的 done ,让键盘消失;

2. 点击 编辑框以外的区域, 让键盘消失。

特别说明一点: 通过布满全屏的Button ,这种方法要求: 这个巨型的Button 一定要放在最底层。 否则的话,编辑框将无法接受输入的事件。

方案点评:

UITextFieldDelegate UIControll 方案,处理键盘消失问题,这是一种大智慧。 而巨型 Button didOnExit 方法,虽然也能用,但从软件编程思想上看,只能算是一种小聪明罢了。

小结:

只要有输入框存在,就得处理如何让键盘消失的问题。 当然,你可以仅仅处理 点击“done”按钮,来让键盘消失。 但为了让用户有更好的体验, 需要同时处理 非编辑框的区域的事件响应。

更多iOS技术交流,欢迎加入 “iOS之美” QQ群号:238303969
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值