iOS中IQKeyboardManager的运用

2017-12-18 by 耕耘的小码农


一、使用场景

      在你开发App的过程中,如果遇到上下有多个UITextField或UITextView,你准备输入文字,这个时候弹出的键盘可能将底层的覆盖掉,这样的话,你就不能边输入边检查输入的内容了。当然,你也可以通过其他方式如通知,监测键盘弹出时的高度,从而提升整个视图的高度,达到可以看到底层内容的目的,但是这样就有点复杂了,而使用这个库,你只需要导入就可以了,不需要写多余的代码。效果图见下:




效果图
二、库的特点

1、0行代码

2、自动工作

3、没有更多的UIScrollView

4、没有更多的人为工作

5、没有更多的#imports

IQKeyboardManager可以在任何方向的界面上工作,也可以有toolBar。允许你定制键盘距离UITextField或UITextView的距离,在键盘上面的UIToolBar添加前一个/后一个/done按钮,当用户在文本框之间切换时播放声音。

三、版本要求


系统版本要求


Swift Versions Support
四、安装说明

1、如果你使用的是Objective-C




Objective-C下通过CocoaPods导入

2、如果你使用的是Swift




Swift下通过CocoaPods导入


Swift下开启功能
五、使用说明

(1)控制自动键盘功能启用与否

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //默认为YES,关闭为NO

    [IQKeyboardManager sharedManager].enable = YES;

}

(2)键盘弹出时,点击背景,键盘收回

    [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;

  (3)隐藏键盘上面的toolBar,默认是开启的

    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;

  (4)如果某一个文本框确实不需要键盘上面的toolBar

    textField.inputAccessoryView = [[UIView alloc] init];

  (5)如果某个页面不想让键盘弹出

    - (void) viewWillAppear: (BOOL)animated {

        //关闭自动键盘功能

        [IQKeyboardManager sharedManager].enable = NO;

    }

    - (void) viewWillDisappear: (BOOL)animated {

        //开启自动键盘功能

        [IQKeyboardManager sharedManager].enable = YES;

    }

附:常见问题处理

附:github地址




第七城市

栏目导航(关闭)