文档章节

IQKeyboardManager键盘第三方库的使用

 小王爷还小
发布于 2016/12/23 10:33
字数 622
阅读 28
收藏 0

IQKeyboardManager是iOS中解决键盘弹起遮挡UITextField/UITextView的一种很实用的工具。无需输入任何代码,不需要额外的设置。使用IQKeyboardManager的你只需要将源文件添加到项目。

这里附上下载链接:https://github.com/hackiftekhar/IQKeyboardManager

IQKeyboardManager支持Objective-C和swift,这里建议实用Cocoapod安装,很方便管理。

简单总结一下IQKeyboardManager最重要的功能有以下几点:

1.当键盘遮挡输入文本框的时候,自动上移View,使被遮挡的部分自动处于键盘的上方。

function1.gif

)
导入IQKeyboardManager后,默认所有的页面都有了这个功能,如果你在哪一个界面不想有这个效果可以在当前界面控制器的生命周期方法中进行设置:

#import <IQKeyboardManager.h>
- (void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];

 [IQKeyboardManager sharedManager].enable = NO;

}

- (void)viewWillDisappear:(BOOL)animated{

[super viewWillDisappear:animated];

 [IQKeyboardManager sharedManager].enable = YES;

}

或者在 AppDelegate中注册方法:

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

  [[IQKeyboardManager sharedManager] disableInViewControllerClass:[ViewController class]];

    return YES;
}

2.在键盘上会自动添加一个工具条,工具条上有左箭头和右箭头用来切换的输入文本框,还有完成按钮用来收回键盘。

function2.gif


你也可以不使用这个自动工具条,设置的代码如下:

 [IQKeyboardManager sharedManager].enableAutoToolbar = NO;

3.可以将键盘上的return按键,变为Next/Done按键,默认最后一个UITextField/UITextView的键盘return键变为Done。顺序是按照创建控件的先后顺序,而不是从上到下的摆放顺序。

function3.gif


设置的代码如下:

#import <IQKeyboardReturnKeyHandler.h>
@implementation ViewController
{
    IQKeyboardReturnKeyHandler *returnKeyHandler;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
}

4.设置点击背景收回键盘。

- (void)viewDidLoad {
    [super viewDidLoad];

    [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;

}

5.如果你的视图有导航栏,你不想上移View时,UINavigationBar消失,如function3.gif所示,你也可以进行相应设置:
如果你使用的是storyboard or xib,只需将当前视图视图控制器中的UIView class变为UIScrollView。

图片.png


如果你使用的是代码,你就需要覆盖UIViewController中的'-(void)loadView' 方法:

-(void)loadView
{
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.view = scrollView;
}

以上就是本人对IQKeyboardManager的功能简单理解,这个第三方库还有一些其他不怎么常用的功能,以后用到会继续更新。


 

文/chendong_(简书作者)
原文链接:http://www.jianshu.com/p/9d7d246bd350/comments/1518291
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 13
码字总数 11662
作品 0
iOS 键盘自适应(IQKeyboardManager)使用小结

IQKeyboardManager Github地址 经常在开发一个应用程序,我们遇到了一个问题,iPhone的键盘上滑覆盖的。可以防止键盘滑动问题和覆盖无需你输入任何代码,不需要额外的设置要求。使用IQKeybo...

法斗斗
2015/11/03
0
4
自动处理键盘事件的第三方库 IQKeyboardManager

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

泊竹
2015/03/09
0
12
Lynd/OSChina For iphone

此项目是根据官方版本客户端重新写的。http://git.oschina.net/oschina/iphone-app 只支持ios8以上系统,项目中使用到了size class,以及ios8最新的api 使用cocoaspod管理第三方库。下载代码后...

Lynd
2015/01/06
0
0
iOS,键盘附件

项目需求是这样的: 要搞一个键盘的附件, 查了些资料, 效果如图. 首先, UIResponder 中有两个相关的属性, 其实只用到了属性, 在UIResponder中, 这个属性是只读的, 我们需要在自定义的控制器或...

hell03W
2016/11/05
34
0
iOS 开发常用三方类库

IQKeyboardManager(https://github.com/hackiftekhar/IQKeyboardManager) IQKeyboardManager是iOS中解决键盘弹起遮挡UITextField/UITextView的一种很实用的工具。无需输入任何代码,不需要额外...

别情花如依丶
2016/12/10
26
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

1、Vue解决安卓4.4不兼容的问题

1.npm安装 npm install babel-polyfill--save-devnpm install es6-promise--save-dev package.json中会出现 "babel-polyfill": "^6.26.0","es6-promise": "^4.1.1", 2.main.js引入 impo......

阿K1225
5分钟前
0
0
mybatis generator 属性详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis......

太黑_thj
9分钟前
0
0
windows nvm 安装 node

nvm 是 node 的版本控制管理 下面是下载 nvm 的地址,选择 nvm-setup.zip 下载 https://github.com/coreybutler/nvm-windows/releases 就是下一步下一步,一键安装 基本命令有: nvm arch [32...

U_I_A_N
11分钟前
0
0
js判断字符串中是否包含某个字符串

indexOf() indexof()方法可以返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。 var str = "123";console.log(str.indexOf("3") != -1);...

小星星_cjx
24分钟前
0
0
函数式组件完整例子

之前创建的组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法。它只是一个接收参数的函数。 在下面这个例子中,我们标记组件为 functional,这意味它是无状态 (没有响...

tianyawhl
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部