文档章节

自动处理键盘事件的第三方库 IQKeyboardManager

 泊竹
发布于 2015/03/09 18:35
字数 412
阅读 41598
收藏 19
点赞 7
评论 12

这个库的下载地址: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的先后顺序。


© 著作权归作者所有

共有 人打赏支持
粉丝 90
博文 67
码字总数 13285
作品 0
徐汇
加载中

评论(12)

h
hdshds

引用来自“Vincent__iOS”的评论

麻烦问下,这个库导入后导致textFeild的协议方法失效,需怎样设置呢?感谢
我也遇到这个问题了 还真不知咋弄
镜花水月cy

引用来自“Jerry_D”的评论

为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?
你不说具体情况,具体情况具体分析啊
镜花水月cy

引用来自“Jerry_D”的评论

为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?
你是不是没有设置完全
Vincent__iOS
Vincent__iOS
麻烦问下,这个库导入后导致textFeild的协议方法失效,需怎样设置呢?感谢
n
ninininini
博主写的不错, 4楼正解, 谢谢分享
Jerry_D
Jerry_D
为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?
shh4775
shh4775
怎么作用在子视图上?
泊竹

引用来自“阿文iOS”的评论

toolbarManageBehaviour在最新版中,不再是returnKeyHandler的属性了,而是IQKeyboardManager对象的属性了,前几天用到发现,供参考
感谢提醒
阿文iOS
阿文iOS
toolbarManageBehaviour在最新版中,不再是returnKeyHandler的属性了,而是IQKeyboardManager对象的属性了,前几天用到发现,供参考
泊竹

引用来自“GarySky”的评论

操你大爷,抄都不带改字的80
这个三方库不是我写的,这段使用体验确实是我的原创,不知道你为啥会认为我是抄的?我博客里如果引用了别人的文章,一定会标明是转载,并且提供原文链接。你这样的评论让我有点无法接受。
Lynd/OSChina For iphone

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

Lynd ⋅ 2015/01/06 ⋅ 0

IQKeyboardManager键盘第三方库的使用

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

小王爷还小 ⋅ 2016/12/23 ⋅ 0

iOS 键盘自适应(IQKeyboardManager)使用小结

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

法斗斗 ⋅ 2015/11/03 ⋅ 4

iOS 开发常用三方类库

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

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

IQKeyboardManager

我们在开发应用的时候经常碰到这样一种情况,界面上的 UITextFields 和 UITextView 被弹出的键盘所挡住。 而使用了 IQKeyboardManager 你只需要一行代码就可以解决这个问题: 特点: 易于集成...

红薯 ⋅ 2013/09/08 ⋅ 1

新版本cocoapods的Profile文件

更新了新的cocoapod, 发现以前的库不能更新使用了, 然后就在网上找了好久, 发现是新版本cocoapods库格式有变化. 新的格式如下所示.

hell03W ⋅ 2016/12/05 ⋅ 0

Cocoapods相关笔记

个人常用的Profile中的库 cocoapods原理 cocoapods将所有的依赖库放到一个名为Pods的项目中, 然后主项目依赖Pods项目, 这样, 源码管理工作都从主项目转移到了Pods项目中. Pods项目最终会编译...

hell03W ⋅ 2016/05/26 ⋅ 0

iOS,键盘附件

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

hell03W ⋅ 2016/11/05 ⋅ 0

iOS开发中常用第三方库的整理 

名称 作用 说明 AFNetworking 基于HTTP协议联网 SDWebImage 图片缓存和异步加载 YYWebImage 图片缓存和异步加载 Ono XML解析 RaptureXML XML解析 KissXML XML解析 YYModel JSON-模型对象转换...

xiaobai1315 ⋅ 2016/09/09 ⋅ 0

可以响应touch事件的TableView--HYTableView

在TableView中包含TextField的情况下,通常我们都会想让用户可以通过点击TableView的其他地方来隐藏键盘,但是默认的TableView无法处理touch事件。 网上查了一下,有位朋友通过继承UITableVi...

rainbownight ⋅ 2013/11/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 29分钟前 ⋅ 0

Java学习路径及练手项目合集

Java学习路径及练手项目合集

颖伙虫 ⋅ 45分钟前 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部