文档章节

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

 泊竹
发布于 2015/03/09 18:35
字数 412
阅读 41899
收藏 19

这个库的下载地址: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
徐汇
加载中

评论(13)

泊竹

引用来自“GarySky”的评论

操你大爷,抄都不带改字的80
这个三方库不是我写的,这段使用体验确实是我的原创,不知道你为啥会认为我是抄的?我博客里如果引用了别人的文章,一定会标明是转载,并且提供原文链接。你这样的评论让我有点无法接受。
G
GarySky
操你大爷,抄都不带改字的80
b
bangbang15
把控件添加到self.view上textfeild怎么上不去
新版本cocoapods的Profile文件

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

hell03W
2016/12/05
14
0
Cocoapods相关笔记

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

hell03W
2016/05/26
86
0
iOS,键盘附件

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

hell03W
2016/11/05
34
0
iOS开发中常用第三方库的整理 

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

xiaobai1315
2016/09/09
23
0
可以响应touch事件的TableView--HYTableView

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

rainbownight
2013/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OpenCV边缘检测算子原理总结及实现

1. 拉普拉斯算子 原理:是一种基于图像导数运算的高通线性滤波器。它通过二阶导数来度量图像函数的曲率。 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉...

漫步当下
昨天
0
0
Spring源码阅读——1

开始读Spring源码吧,看再多的技术博客,不如自己看一下~~~~~ Spring源码目前在github中,新版本基于gradle构建。所以阅读源码需要先安装github和gradle。 spring中git地址 1、安装git(略)...

叶枫啦啦
昨天
1
0
Django 框架12: 处理静态文件

1.项目中的CSS、图片、js都是静态文件 2.配置静态文件 在settings文件中定义静态内容 STATIC_URL = '/static/'STATICFILES_DIRS = [    os.path.join(BASE_DIR, 'static'),]...

代码打碟手
昨天
2
0
php-fpm配置

php-fpm的pool php-fpm在LNMP中是一个独立的服务 php-fpm中会配置多个pool,一个pool可以监听一个端口,也可以监听一个socket。 把php-fpm.conf文件内容做一下更改 创建配置文件目录和子目录...

黄昏残影
昨天
1
0
RocketMQ源码:PushConsumer流量控制

本文分析PushConsumer的流量控制方法。PushConsumer使用Pull方式获取消息,好处是客户端能够根据自身的处理速度调整获取消息的操作速度。PushConsumer的流量控制采用多线程处理方式。 Rocket...

Jacktanger
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部