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

我们写界面要考虑很多用户体验问题,键盘事件的响应就是比较麻烦的一种。我们需要监听键盘事件,考虑点击背景收起键盘、考虑键盘遮挡输入框问题等等,而且每个界面都要做这么一套。这个库帮我们解决了这个事情。

这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager

这个库是一个单例,它一旦生效,全项目任何界面都有效。让它生效的代码可以写在任意位置,我写在AppDelegate里。

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 2
 3     IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
 4     manager.enable = YES;
 5     manager.shouldResignOnTouchOutside = YES;
 6     manager.shouldToolbarUsesTextFieldTintColor = YES;
 7     manager.enableAutoToolbar = NO;
 8
 9     return YES;
10 }

enable控制整个功能是否启用。

shouldResignOnTouchOutside控制点击背景是否收起键盘。

shouldToolbarUsesTextFieldTintColor 控制键盘上的工具条文字颜色是否用户自定义。

enableAutoToolbar控制是否显示键盘上的工具条。

以上设置,就启用了这个库。

使用方法,代码如下:

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4
 5 @property (nonatomic, strong) IQKeyboardReturnKeyHandler    *returnKeyHandler;
 6
 7 @end
 8
 9 @implementation ViewController
10
11 - (void)viewDidLoad {
12     [super viewDidLoad];
13
14     self.returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
15     self.returnKeyHandler.lastTextFieldReturnKeyType = UIReturnKeyDone;
16     self.returnKeyHandler.toolbarManageBehaviour = IQAutoToolbarBySubviews;
17 }
18
19 - (void)dealloc
20 {
21     self.returnKeyHandler = nil;
22 }
23
24 @end

设置returnKeyHandler,可以点击键盘上的next键,自动跳到下一个输入框。最后一个输入框点击done自动收起键盘。

运行后,可以看到输入框随着键盘的弹出自动上下浮动。点击背景,键盘收起。全自动了。

这个库默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView

最后要注意一点,它可以自动计算多个textField之间的先后顺序,排列依据是看addSubView的先后顺序。

时间: 2024-08-04 18:27:46

iOS自动处理键盘事件的第三方库:IQKeyboardManager的相关文章

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

http://www.w2bc.com/Article/27006 这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager 这个库是一个单例,它一旦生效,全项目任何界面都有效.让它生效的代码可以写在任意位置,我写在AppDelegate里. 1 2 3 4 5 6 7 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption

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

我们写界面要考虑很多用户体验问题,键盘事件的响应就是比较麻烦的一种.我们需要监听键盘事件,考虑点击背景收起键盘.考虑键盘遮挡输入框问题等等,而且每个界面都要做这么一套.这个库帮我们解决了这个事情. 这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager 这个库是一个单例,它一旦生效,全项目任何界面都有效.让它生效的代码可以写在任意位置,我写在AppDelegate里. 1 2 3 4 5 6 7 8 9 10 - (BOOL)appl

iOS中一些 常用的第三方库

转自ibireme的博客 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽. 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库. 首先整理了一份Github上排名靠前的iOS库(大概600个repos) 除了逛一下每日/每月流行之外,也可以到这里来看一下整个iOS Repos的排名. 下面是一些比较流行的第三方库: HTTP 相比较之下

iOS开发中用到的第三方库概览

前言:记录一下使用过和接触过的第三方库,重要程度与顺序无关 网络请求: AFNetworking:AFNetworking is a delightful networking library for iOS and Mac OS X. YTKNetwork:YTKNetwork is a high level request util based on AFNetworking. 转模型 MJExtension:A fast, convenient and nonintrusive conve

iOS 开发的非常有用 第三方库

ios中那些好用的第三方库 ios 里面有很多很多好用的第三方框架,有许多是项目中必用的,本文主要来写一些常用的ios第三方库的使用 (一)Masonry Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X. Masonry是一个用代码写ios或os界面的库,可以代替Auto layout. Masonry的github地址:https://github.com/SnapKit/Maso

iOS真机调试引入第三方库(如友盟等)编译时候,出现错误提示

用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过.看了下问题,报的是以下错误: MARK:解决方法:在building Setting 中设置bitCode 为NO file:///Users/libtop/Desktop/屏幕快照%202016-04-14%2011.17.15.png ld: ‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)’does

IOS开发中有用的第三方库

#Objective-C中最受瞩目库 [链接](https://github.com/languages??/Objective-C/most_watched) * [three20](https://github.com/facebook/three20) * faebook的320库** * [AFNetworking](https://github.com/AFNetworking/AFNetworking) *网络库** * [MBProgressHUD](https://github.

iOS 常用的几个第三方库

网络通信 1.ASIHTTPRequest 这是一个经典的老库,功能完全而强大,但已经停止更新很久了(iOS5.0停止更新,但是我最近看github上这个项目有新改动).在不同iOS版本上略微有一些小问题(提醒显示上的),所以用的时候还是稍微修改一下比较好. 下载地址:https://github.com/pokeb/asi-http-request 2.AFNetworking 轻量级的通讯类库,使用非常简单. 下载地址:https://github.com/AFNetworking/AFNe

iOS关于rar解压第三方库Unrar4iOS使用总结

作者最近的公司项目要做实现rar解压的功能,在网上找了很久貌似关于rar解压的资料很少,不过有很多人推荐一个名叫“Unrar4iOS”的第三方开源框架,于是下载并尝试使用发现该开源框架并在使用过程中发现了一些存在的问题,特在此做下总结让后来人少走些弯路. 1.不支持armv7s: 2.编译好的framework中将Unrar4iOS.h和Unrar4iOS.mm编译在内有些方法并未实现,比如-(BOOL) unrarFileTo:(NSString*) path overWrite:(BOOL)