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

原创
2015/03/09 18:35
阅读数 4.6W

这个库的下载地址: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的先后顺序。


展开阅读全文
打赏
7
19 收藏
分享
加载中

引用来自“Jerry_D”的评论

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

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

你不说具体情况,具体情况具体分析啊
我的也是,我使用的是6.0.3版本的,我设置的中文完成能够显示,但是上一个/下一个是不显示的?请问怎么解决?
还有一个就是上拉的时候超出的长度太多了,都快划出我的屏幕了,怎么处理
2018/07/17 18:18
回复
举报

引用来自“Vincent__iOS”的评论

麻烦问下,这个库导入后导致textFeild的协议方法失效,需怎样设置呢?感谢
我也遇到这个问题了 还真不知咋弄
2016/12/08 18:17
回复
举报

引用来自“Jerry_D”的评论

为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?
你不说具体情况,具体情况具体分析啊
2016/11/27 12:00
回复
举报

引用来自“Jerry_D”的评论

为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?
你是不是没有设置完全
2016/11/27 11:59
回复
举报
麻烦问下,这个库导入后导致textFeild的协议方法失效,需怎样设置呢?感谢
2016/11/04 10:21
回复
举报
博主写的不错, 4楼正解, 谢谢分享
2016/08/11 17:37
回复
举报
为什么我的工具条可以出来 上面还显示了文字 完成 但是左右按钮怎么没有了?
2016/06/28 16:56
回复
举报
怎么作用在子视图上?
2016/06/07 09:45
回复
举报
泊竹博主

引用来自“阿文iOS”的评论

toolbarManageBehaviour在最新版中,不再是returnKeyHandler的属性了,而是IQKeyboardManager对象的属性了,前几天用到发现,供参考
感谢提醒
2016/03/24 10:11
回复
举报
toolbarManageBehaviour在最新版中,不再是returnKeyHandler的属性了,而是IQKeyboardManager对象的属性了,前几天用到发现,供参考
2016/03/22 15:39
回复
举报
更多评论
打赏
13 评论
19 收藏
7
分享
在线直播报名
返回顶部
顶部