这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManagergit
这个库是一个单例,它一旦生效,全项目任何界面都有效。让它生效的代码能够写在任意位置,我写在AppDelegate里。github
- (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控制整个功能是否启用。
app
shouldResignOnTouchOutside控制点击背景是否收起键盘。ide
shouldToolbarUsesTextFieldTintColor 控制键盘上的工具条文字颜色是否用户自定义。工具
enableAutoToolbar控制是否显示键盘上的工具条。atom
以上设置,就启用了这个库。spa
使用方法,代码以下:
code
#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自动收起键盘。orm
运行后,能够看到输入框随着键盘的弹出自动上下浮动。点击背景,键盘收起。全自动了。it
这个库默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView
最后要注意一点,它能够自动计算多个textField之间的前后顺序,排列依据是看addSubView的前后顺序。