美文网首页推送
iOS 自动处理键盘遮盖(IQKeyboardManager)

iOS 自动处理键盘遮盖(IQKeyboardManager)

作者: ShanJiJi | 来源:发表于2016-07-26 18:00 被阅读517次

    我们写界面需要考虑很多用户体验问题,键盘遮挡输入框问题就是比较麻烦的一种。我们需要监听键盘事件,考虑点击背景收起键盘、考虑键盘位置等问题,而且每个界面都要做这么一套。IQKeyboardManager这个库帮我们解决了这个事情。

    IQKeyboardManager下载地址:https://github.com/hackiftekhar/IQKeyboardManager
    这个库是一个单例,它一旦生效,全项目任何界面都有效。让它生效的代码可以写在任意位置,我写在AppDelegate里。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {        
      IQKeyboardManager *manager = [IQKeyboardManager sharedManager];    
      manager.enable = YES;    
      manager.shouldResignOnTouchOutside = YES;    
      manager.shouldToolbarUsesTextFieldTintColor = YES;
      manager.enableAutoToolbar = NO;        
      return YES;
    }
    

    enable控制整个功能是否启用。
    shouldResignOnTouchOutside控制点击背景是否收起键盘。
    shouldToolbarUsesTextFieldTintColor 控制键盘上的工具条文字颜色是否用户自定义。
    enableAutoToolbar控制是否显示键盘上的工具条。
    以上设置,就启用了这个库。
    使用方法,代码如下:

    #import "ViewController.h"
    @interface ViewController ()
    @property (nonatomic, strong) IQKeyboardReturnKeyHandler    *returnKeyHandler;
    @end
    @implementation ViewController
    - (void)viewDidLoad {    
    [super viewDidLoad];       
      self.returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];    
      self.returnKeyHandler.lastTextFieldReturnKeyType = UIReturnKeyDone;    
      self.returnKeyHandler.toolbarManageBehaviour = IQAutoToolbarBySubviews;
    }
    - (void)dealloc{
      self.returnKeyHandler = nil;
    }
    @end
    

    设置returnKeyHandler,可以点击键盘上的next键,自动跳到下一个输入框。最后一个输入框点击done自动收起键盘。
    运行后,可以看到输入框随着键盘的弹出自动上下浮动。点击背景,键盘收起。全自动了。
    这个库默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView
    最后要注意一点,它可以自动计算多个textField之间的先后顺序,排列依据是看addSubView的先后顺序。

    原文链接:http://my.oschina.net/u/1418722/blog/384477

    相关文章

      网友评论

      • 雪_晟:你好,我问一下,在Scrollview上的输入框处理 失效,这个怎么做呢
      • 其实你懂De:self.returnKeyHandler.toolbarManageBehaviour = IQAutoToolbarBySubviews
        我怎么报错呢???

      本文标题:iOS 自动处理键盘遮盖(IQKeyboardManager)

      本文链接:https://www.haomeiwen.com/subject/vlonjttx.html