iOS键盘的简单处理

在开发中经常会碰到需要处理键盘的显示和隐藏:
一般可以通过以下几种方法处理:
一、
1.通过UITextFieldDelegate的代理来实现,让控制器成为其的代理,控制器遵守相关协议即可:

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

 [textField resignFirstResponder];//移除第一响应者

 return YES;

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

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

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

- (IBAction)backgroundTap:(id)sender {

    [self.nameTextField resignFirstResponder];

    [self.passwordTextField resignFirstResponder];

}

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

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

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

二、相关代理方法的说明

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
   //返回一个BOOL值,指定是否循序文本字段开始编辑  
    return YES; 
}  
- (void)textFieldDidBeginEditing:(UITextField*)textField{
    //开始编辑时触发,文本字段将成为firstresponder
}
- (BOOL)textFieldShouldEndEditing:(UITextField*)textField{
   //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder
   //要想在用户结束编辑时阻止文本字段消失,可以返回NO
   //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息
    return NO;
}
- (BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string{
   //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。
   //这对于想要加入撤销选项的应用程序特别有用
   //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。  
    //要防止文字被改变可以返回NO
   //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中
    return YES;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
   //返回一个BOOL值指明是否允许根据用户请求清除内容
   //可以设置在特定条件下才允许清除内容
    return YES;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
   //返回一个BOOL值,指明是否允许在按下回车键时结束编辑
   //如果允许要调用resignFirstResponder 方法,这回导致结束编辑,而键盘会被收起
    [textFieldresignFirstResponder];//查一下resign这个单词的意思就明白这个方法了
    return YES;
}

三、也可以用第三方框架来处理和实现:
例如
IQKeyboardManager ,下载地址:https://github.com/hackiftekhar/IQKeyboardManager
设置returnKeyHandler,可以点击键盘上的next键,自动跳到下一个输入框。最后一个输入框点击done自动收起键盘。

运行后,可以看到输入框随着键盘的弹出自动上下浮动。点击背景,键盘收起。全自动了。

这个库默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView

最后要注意一点,它可以自动计算多个textField之间的先后顺序,排列依据是看addSubView的先后顺序。

键盘弹出的示意图:
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值