У меня есть UITableviewController со следующей логикой c, чтобы скользить вверх / вниз по всему представлению, когда клавиатура переключается следующим образом:
class ChatDetailViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
// variables...
override func viewDidLoad() {
super.viewDidLoad()
// do stuff...
NotificationCenter.default.addObserver(self, selector: Selector(("keyboardWillShow:")), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: Selector(("keyboardWillHide:")), name: UIResponder.keyboardWillHideNotification, object: nil)
// do other stuff...
}
...
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
self.view.frame.origin.y -= keyboardSize.height
}
}
func keyboardWillHide(notification: NSNotification) {
self.view.frame.origin.y = 0
}
...
}
Переключение клавиатуры затем приводит к сбою приложения со следующим исключением: ChatDetailViewController keyboardWillShow:]: нераспознанный селектор отправлен в экземпляр 0x7f82fc41fdf0
На первый взгляд, сообщение об ошибке кажется ясным, но я все еще не могу понять, что не так с моим селектором. Никаких кодовых предупреждений, никаких опечаток, ...
Что я здесь не так делаю?