iOS开发中防止键盘挡住输入框的三方库-IQKeyboardManager

      之前写博客都是在CSDN,最近发现CSDN总是会有打不开的情况而且有时加载的页面也不完全,因此有时有些不爽。简书实际已经关注很久了,会经常在简书上看别人写的文章,感觉简书上的文章很不错,而且发现越来越多的人也都开始在简书上写文章了。今天本来想用CSDN写一篇文章的,可发现之前写文章的入口找不到了,于是就选择了简书,这是在简书上的第一篇文章,希望以后能在简书上的写文章之路走得远一些。

       今天要说的是一个三方库——IQKeyboardManager。这个三方库的作用是防止用户在输入文本框的时候键盘挡住输入框,让用户无法看到输入的内容。我之前也是遇到这样的情况的,可当时我不知道这个三方库的存在,我的处理是将输入框放在了UIScrollView上,当用户点击输入框进行输入文字操作的时候将UIScrollView进行上移。

为什么要使用IQKeyboardManager?

1. 不让键盘挡住输入框   2. 有一个统一收起键盘的按钮

先给大家附上IQKeyboardManager的下载地址:https://github.com/hackiftekhar/IQKeyboardManager

(新增  附上一个码云上的地址:https://gitee.com/liangsenliangsen/IQKeyboardManager )

作者是在AppDelegate中开启了IQKeyboardManager,包括我看其他的一些文章也是这样做的,代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

IQKeyboardManager *keyboardManager = [IQKeyboardManager sharedManager];

// 获取类库的单例变量

keyboardManager.enable = YES; // 控制整个功能是否启用

return YES;

}


可我发现了一个问题,这个三方库默认是会在键盘上方显示一个工具条,并且工具条中间会显示输入框内默认文字,如图:

如果同样地在AppDelegate中通过设置IQKeyboardManager的属性去隐藏这个工具条,是无效的而如果在控制器中去设置属性隐藏工具条是有效的,因此我的想法是将设置IQKeyboardManager的所有代码放到根控制器中。

如果在某个控制器中不想使用IQKeyboardManager的功能我们还可以在具体的某个控制器上让IQKeyboardManager这个三方库实效。代码:

- (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];

[IQKeyboardManager sharedManager].enable = NO;

}

- (void)viewWillDisappear:(BOOL)animated {

[super viewWillDisappear:animated];

[IQKeyboardManager sharedManager].enable = YES;

}

(后续增加内容:1.如果某个页面有多个UITextField会有两个箭头出现<上、下>,如果某个TextField禁用了,那么点击箭头光标就不能定位到这个TextField了)

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么人们会害怕未知?害怕没有确定的事?明明它没有发生过,没有对你有攻击的行为。 原来一切都是你的潜意识搞鬼,都是...
    灵气考拉阅读 532评论 1 2
  • 现今科技和信息发达,人工智能也在进一步地发展,某些人也曾预测未来年轻人越发难找到工作。以BAT为首的各大网络巨头近...
    Braineo阅读 5,749评论 3 0
  • 1.大学最后半学期,就直接到野外实习去了!一边做着毕业设计,一边学着“业务”,说实话其实就是干体力活!还要时刻保护...
    GreatWall_Z阅读 397评论 2 5
  • 早上四点半至晚上七点半,不停歇搞出交流材料,功能已经退化。
    对上暗号喝一杯阅读 293评论 0 0