之前写博客都是在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了)
本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊