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


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

    这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager

    这个库是一个单例,它一旦生效,全项目任何界面都有效。让它生效的代码可以写在任意位置,我写在AppDelegate里。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    - (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控制是否显示键盘上的工具条。

    以上设置,就启用了这个库。

    使用方法,代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #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

                         manager.keyboardDistanceFromTextField = 50; 可以设置上移的高度,

    设置returnKeyHandler,可以点击键盘上的next键,自动跳到下一个输入框。最后一个输入框点击done自动收起键盘。

    运行后,可以看到输入框随着键盘的弹出自动上下浮动。点击背景,键盘收起。全自动了。

    这个库默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView

    最后要注意一点,它可以自动计算多个textField之间的先后顺序,排列依据是看addSubView的先后顺序。

    注: 在故事版中使用时, 最好把控件写在 scrollView上

  • 相关阅读:
    下拉菜单的option的value属性值问题
    GDAL1.9.1 IN VS2008 C#中的编译及使用
    多表连接 去重
    【示例代码】HTML+JS 画图板源码分享
    Winet API 支持HTTPP/SOCKS代理
    入门Html
    关于CDC在非控件类中的使用
    The document "ViewController.xib" could not be opened. Could not read archive.
    华为的一道题
    [置顶] WEBSOKET服务器搭建
  • 原文地址:https://www.cnblogs.com/qyfeng009/p/5371655.html
Copyright © 2020-2023  润新知