extension UIViewController {
func addKeyboardNotifications() {
let nc = NotificationCenter.default
nc.addObserver(self,
selector: #selector(willShowKeyboard(notification:)),
name: UIResponder.keyboardWillShowNotification,
object: nil)
nc.addObserver(self,
selector: #selector(didShowKeyboard(notification:)),
name: UIResponder.keyboardDidShowNotification,
object: nil)
nc.addObserver(self,
selector: #selector(willHideKeyboard(notification:)),
name: UIResponder.keyboardWillHideNotification,
object: nil)
nc.addObserver(self,
selector: #selector(didHideKeyboard(notification:)),
name: UIResponder.keyboardDidHideNotification,
object: nil)
nc.addObserver(self,
selector: #selector(willChangeKeyboard(notification:)),
name: UIResponder.keyboardWillChangeFrameNotification,
object: nil)
}
@objc func willShowKeyboard(notification: Notification) {}
@objc func didShowKeyboard(notification: Notification) {}
@objc func willHideKeyboard(notification: Notification) {}
@objc func didHideKeyboard(notification: Notification) {}
@objc func willChangeKeyboard(notification: Notification) {}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
addKeyboardNotifications()
}
}
extension ViewController {
@objc override func willShowKeyboard(notification: Notification) {
// 使いたい通知のみoverride
}
@objc override func didShowKeyboard(notification: Notification) {
}
}