背景
我这边要做一个城市三级选择页面,用pickerView做。
代码语言:javascript复制addressLabelText.inputView = pickerView
我指定了textFlied的inputView。由于项目已经集成了IQKeyboardManager所以不用单独设置toolbar。
问题
点击textflied的时候什么都不选择,点击完成按钮。内容是不填充到text的。
陷入误区
于是想找到IQKeyboardManager的done事件,找了源码很久发现作者并不想提供这类事件。如果强制改变源码可以实现,但是为什么别人都没有提出这个问题呢。
解决办法
原来是我自己陷入的误区,我一直在想监听点击完成按钮。其实IQKeyboardManager设计初衷不就是为了输入的时候键盘和输入框位置的调整吗?必然完成按钮和输入框状态有必然联系。
我们只需要监听text状态即可,如我需要监听
代码语言:javascript复制func textFieldDidEndEditing(_ textField: UITextField) {
}
感悟
存在即合理同样的,不存在也是合理的。不要强行的去另辟蹊径,多想想背后的原理再动手。