为了防止弹出键盘对textfiled等的遮挡,感觉用处不大
这个库的下载地址: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;returnYES;}
enable控制整个功能是否启用。
shouldResignOnTouchOutside控制点击背景是否收起键盘。
shouldToolbarUsesTextFieldTintColor 控制键盘上的工具条文字颜色是否用户自定义。
enableAutoToolbar控制是否显示键盘上的工具条。
以上设置,就启用了这个库。
使用方法,代码如下:
#import"ViewController.h"@interfaceViewController()@property(nonatomic,strong) IQKeyboardReturnKeyHandler *returnKeyHandler;@end@implementationViewController- (void)viewDidLoad { [superviewDidLoad];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的先后顺序。