文档章节

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

 泊竹
发布于 2015/03/09 18:35
字数 412
阅读 41611
收藏 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)

G
GarySky
操你大爷,抄都不带改字的80
b
bangbang15
把控件添加到self.view上textfeild怎么上不去
iOS常用的三方库

UI相关:(转载http://www.jianshu.com/p/be0401e35e06) 上拉下拉刷新控件: 链接:MJRefresh 动态启动图: 链接:YFStartView MBProgressHUD: 链接:MBProgressHUD 一个效果很好的弹出下拉框:...

oschina6k ⋅ 2016/05/11 ⋅ 1

盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?

综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZAudio 基于核心音频,有助于进...

ios122 ⋅ 2015/10/13 ⋅ 1

Xcode7.2 使用CocoaPods添加第三方类库失败,无法编译出libPods.a文件

我正确安装了CocoaPods,然后创建了一个名为TestCocoaPods(项目类型为:Single View Application)的demo项目,并在项目的主目录下面增加了一个Profile文件,内容如下: pod 'PureLayout' pod...

八两俊 ⋅ 2016/02/18 ⋅ 3

iOS中的一些小知识点

<一>在tableview中取出多余分割线的方法 1. self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;此方法会取出所有的分割线,不管有没有数据,可是现在有中需要是有数据的显示...

刀客445 ⋅ 2016/07/04 ⋅ 0

window的消息和事件

图 形界面是非常有吸引力的东西。但是制作出来似乎不是那么容易,这个观点对于用C来笨拙写windows的窗口程序来说,是比较正确的。微软公司出品的 windows是一个图形界面的操作系统,这个和d...

jinx88 ⋅ 2016/06/17 ⋅ 0

20 款处理键盘事件的 JavaScript 库

键盘事件可以提高网站的易用性,提高用户与网站的交互体验,或者是页面需要通过键盘输入来触发事件。这些都非常有必要使用快捷键或者是键盘输入条目。 将这些事件处理整合到 HTML 文档中,通...

oschina ⋅ 2014/03/05 ⋅ 15

iOS少用的框架

AFOnoSerializer: 序列化XML和HTML DateTools: 时间计算 DTCoreText: 渲染HTML GRMustache: html模版引擎 GPUImage: 图像处理 RESideMenu: 侧拉栏 SSKeychain: 账号密码的存取 TBXML:...

Ethan-GOGO ⋅ 2016/08/15 ⋅ 0

Android 软键盘响应事件解析

前言 最近重新设计了一遍项目中的搜索栏,但是每次填完搜索内容,都需要去按下右边的搜索按钮,感觉比较麻烦。但是看到很多应用,填完内容后输入框右下角按钮直接会变成搜索按钮。平时对这方...

⋅ 2017/12/21 ⋅ 0

第三方库之 - SVProgressHUD

发现两个问题 说是两个问题, 但我不知道算不算是问题, 至少我感觉这影响到了用户体验. 1.1 问题1 我测试时候发现, 当界面正在展示进度条, 这时候弹出了键盘, 进度展示控件会自动上移一段距离...

hell03W ⋅ 2016/05/27 ⋅ 0

项目需求讨论-APP中提交信息及编辑信息界面及功能

好久好久没写文章了,这次我们来讨论下一些具有填写很多资料的界面,或者详情编辑界面等如何做起来更方便。 (PS:我写的可能不好,希望大家不好喷,哈哈,可以留言) 内容包括:自定义View,...

青蛙要fly ⋅ 2017/09/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何解决生产环境宕机问题

写在前面:该篇宕机问题的排查难度远比上一篇(记一次解决线上OOM的心路历程)大的太多,上一篇中内存泄漏的问题是有迹可循的,本次的宕机在业务日志上没有任何征兆,另外本文有许多值得深挖...

寰宇01 ⋅ 今天 ⋅ 0

Redis查漏补缺:最易错过的技术要点大扫盲

作者介绍 孤独烟,中国平安研发工程师,目前负责规则云平台架构设计以及需求研发工作。毕业后一直从事Java开发工作,在Web开发、架构设计上有多年的实战经验。在MySQL性能优化、JVM调优、分布...

kim_o ⋅ 今天 ⋅ 0

Eclipse调试时出现source not found的问题

解决方法: 点击debug窗口中的'Edit Source Lookup Path'按钮。 在弹出窗口中点击'Add'按钮。 在弹出窗口中点击'Project'选项。 选择自己正在调试的项目。 不要勾选 'Search for duplicate ...

Helios51 ⋅ 今天 ⋅ 0

3.03-甘特图的开发文档

普加甘特图(PlusGantt) V3.0 开发文档 http://www.plusgantt.com/gantt/doc/ 资源甘特图用户手册2.0(中文版) https://wenku.baidu.com/view/6a24e9d6844769eae109edd7.html...

静以修身2025 ⋅ 今天 ⋅ 0

CentOS cannot change locale UTF-8解决方法及设置中文支持

解决方案,修改如下: vi /etc/sysconfig/i18n # 添加下面的 LC_ALL=C export LC_ALL # 再执行下面的语句,使之生效 source /etc/sysconfig/i18n...

黄羽蒙 ⋅ 今天 ⋅ 0

C#设计模式:模板方法模式(Template Method)

一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时...

布衣大侠 ⋅ 今天 ⋅ 0

GitLab的安装及使用教程

1、配置yum源 vim /etc/yum.repos.d/gitlab-ce.repo 复制以下内容: [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ ......

Jeam_ ⋅ 今天 ⋅ 0

JEPLUS之循环报表—JEPLUS软件快速开发平台

JEPLUS之循环报表 我们在创建报表是想要把每一条数据都生成一个表格,也就是表单报表,那我们如何来实现这一个功能呢,今天我来介绍下如何实现循环报表。 一。效果展示 二、实现步骤 1、首先...

JEPLUS ⋅ 今天 ⋅ 0

Flume日志收集之Logger和HDFS数据传输方式

Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如...

海岸线的曙光 ⋅ 今天 ⋅ 0

如何利用极光推送的新功能玩转世界杯营销

四年一次的世界杯已经于6月14日开赛!对于app的运营人员而言,这场远在俄罗斯的绿茵征战绝不仅仅牵动着球迷们的心,更拨动着众多互联网企业运营人员的神经。在这场营销大战中,push显然是app...

极光推送 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部