IQKeyboardManager 獲取完成按鈕的解決辦法

ZY_FlyWay發表於2019-01-16

背景

我這邊要做一個城市三級選擇頁面,用pickerView做。

addressLabelText.inputView = pickerView

我指定了textFlied的inputView。由於專案已經整合了IQKeyboardManager所以不用單獨設定toolbar。


問題

點選textflied的時候什麼都不選擇,點選完成按鈕。內容是不填充到text的。


陷入誤區

於是想找到IQKeyboardManager的done事件,找了原始碼很久發現作者並不想提供這類事件。如果強制改變原始碼可以實現,但是為什麼別人都沒有提出這個問題呢。


解決辦法

原來是我自己陷入的誤區,我一直在想監聽點選完成按鈕。其實IQKeyboardManager設計初衷不就是為了輸入的時候鍵盤和輸入框位置的調整嗎?必然完成按鈕和輸入框狀態有必然聯絡。

我們只需要監聽text狀態即可,如我需要監聽

func textFieldDidEndEditing(_ textField: UITextField) {

 }

感悟

存在即合理同樣的,不存在也是合理的。不要強行的去另闢蹊徑,多想想背後的原理再動手。

相關文章