文档章节

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

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

s
suwu150

引用来自“Jerry_D”的评论

为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?

引用来自“镜花水月cy”的评论

你不说具体情况,具体情况具体分析啊
我的也是,我使用的是6.0.3版本的,我设置的中文完成能够显示,但是上一个/下一个是不显示的?请问怎么解决?
还有一个就是上拉的时候超出的长度太多了,都快划出我的屏幕了,怎么处理
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对象的属性了,前几天用到发现,供参考
iOS 键盘自适应(IQKeyboardManager)使用小结

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

法斗斗
2015/11/03
0
4
Xcode7.2 使用CocoaPods添加第三方类库失败,无法编译出libPods.a文件

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

八两俊
2016/02/18
4.1K
3
iOS常用的三方库

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

oschina6k
2016/05/11
416
1
Lynd/OSChina For iphone

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

Lynd
2015/01/06
0
0
IQKeyboardManager键盘第三方库的使用

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

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

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
4
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
8
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
12
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
6
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部