카드나 프로젝트에서 키보드를 좀 더 쉽게 핸들링하기 위해서 IQKeyboardManager라는 라이브러리를 추가했었다.
https://github.com/hackiftekhar/IQKeyboardManager
해당 라이브러리의 리드미에 적혀있는 대로, AppDelegate에서 해당 라이브러리 사용을 할 수 있게 해줬다.
그런데, 이 라이브러리를 적용하고 나니까 특정한 뷰컨에서 키보드가 나타날때마다 오류가 생겼다.
그래서 그 뷰컨에서만 이 라이브러리를 적용하고 싶지 않아졌다.
적용하고 싶지 않은 뷰컨에 다음과 같은 코드를 추가한다.
// MARK: - VC LifeCycle
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
setKeyboardManagerEnable(false)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
setKeyboardManagerEnable(true)
}
// MARK: - Function
private func setKeyboardManagerEnable(_ isEnabled: Bool) {
IQKeyboardManager.shared.enable = isEnabled
}
해당 라이브러리는 enable, disable이 싱글턴으로 관리되는것 같다. (shared)
따라서 해당 뷰가 나타날때마다 disable, 다시 사라지고 다른뷰가 보이면 enable을 해주면 된다.