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

来源:互联网 发布:如何加强网络法治建设 编辑:程序博客网 时间:2024/05/12 17:46

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

//自动处理键盘事件的第三方库
IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
//控制整个功能是否启用
manager.enable = YES;
// 控制点击键盘以外区域是否收起键盘
manager.shouldResignOnTouchOutside = YES;
// 控制键盘上的工具条文字颜色是否用户自定义
manager.shouldToolbarUsesTextFieldTintColor = YES;
// 是否显示键盘上的工具条
manager.enableAutoToolbar = YES;
// 设置文本框和键盘距离,不能小于零,默认是10
manager.keyboardDistanceFromTextField = 40;

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

0 0
原创粉丝点击