IQKeyboardManager是iOS中解决键盘弹起遮挡UITextField/UITextView的一种很实用的工具。无需输入任何代码,不须要额外的设置。使用IQKeyboardManager的你只须要将源文件添加到项目。git
这里附上下载连接:https://github.com/hackiftekhar/IQKeyboardManagergithub
IQKeyboardManager支持Objective-C和swift,这里建议实用Cocoapod安装,很方便管理。swift
简单总结一下IQKeyboardManager最重要的功能有如下几点:app
1.当键盘遮挡输入文本框的时候,自动上移View,使被遮挡的部分自动处于键盘的上方。ide
function1.gif工具
)
导入IQKeyboardManager后,默认全部的页面都有了这个功能,若是你在哪个界面不想有这个效果能够在当前界面控制器的生命周期方法中进行设置:code
#import <IQKeyboardManager.h>
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [IQKeyboardManager sharedManager].enable = NO; } - (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [IQKeyboardManager sharedManager].enable = YES; }
或者在 AppDelegate中注册方法:生命周期
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[IQKeyboardManager sharedManager] disableInViewControllerClass:[ViewController class]]; return YES; }
2.在键盘上会自动添加一个工具条,工具条上有左箭头和右箭头用来切换的输入文本框,还有完成按钮用来收回键盘。图片
function2.gifget
你也能够不使用这个自动工具条,设置的代码以下:
[IQKeyboardManager sharedManager].enableAutoToolbar = NO;
3.能够将键盘上的return按键,变为Next/Done按键,默认最后一个UITextField/UITextView的键盘return键变为Done。顺序是按照建立控件的前后顺序,而不是从上到下的摆放顺序。
function3.gif
设置的代码以下:
#import <IQKeyboardReturnKeyHandler.h>
@implementation ViewController { IQKeyboardReturnKeyHandler *returnKeyHandler; } - (void)viewDidLoad { [super viewDidLoad]; returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self]; }
4.设置点击背景收回键盘。
- (void)viewDidLoad { [super viewDidLoad]; [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES; }
5.若是你的视图有导航栏,你不想上移View时,UINavigationBar消失,如function3.gif所示,你也能够进行相应设置:
若是你使用的是storyboard or xib,只需将当前视图视图控制器中的UIView class变为UIScrollView。
图片.png
若是你使用的是代码,你就须要覆盖UIViewController中的'-(void)loadView' 方法:
-(void)loadView { UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.view = scrollView; }
以上就是本人对IQKeyboardManager的功能简单理解,这个第三方库还有一些其余不怎么经常使用的功能,之后用到会继续更新。
文/chendong_(简书做者) 原文连接:http://www.jianshu.com/p/9d7d246bd350/comments/1518291 著做权归做者全部,转载请联系做者得到受权,并标注“简书做者”。