IQKeyboardManager 获取完成按钮的解决办法

2019-02-26 13:08:17 浏览数 (1)

背景

我这边要做一个城市三级选择页面,用pickerView做。

代码语言:javascript复制
addressLabelText.inputView = pickerView

我指定了textFlied的inputView。由于项目已经集成了IQKeyboardManager所以不用单独设置toolbar。


问题

点击textflied的时候什么都不选择,点击完成按钮。内容是不填充到text的。


陷入误区

于是想找到IQKeyboardManager的done事件,找了源码很久发现作者并不想提供这类事件。如果强制改变源码可以实现,但是为什么别人都没有提出这个问题呢。


解决办法

原来是我自己陷入的误区,我一直在想监听点击完成按钮。其实IQKeyboardManager设计初衷不就是为了输入的时候键盘和输入框位置的调整吗?必然完成按钮和输入框状态有必然联系。

我们只需要监听text状态即可,如我需要监听

代码语言:javascript复制
func textFieldDidEndEditing(_ textField: UITextField) {

 }

感悟

存在即合理同样的,不存在也是合理的。不要强行的去另辟蹊径,多想想背后的原理再动手。

0 人点赞