Я пытаюсь получить клавиатуру notificaitons в классе KeyboardScrollController
, но я получаю нераспознанный селектор для UIKeyboardWillHideNotification
и UIKeyboardDidShowNotification
.Непризнанный селектор на UIKeyboardWillHideNotification
Это моя простая реализация:
public class KeyboardScrollController
{
public func subscribeForKeyboardNotifications()
{
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWasShown:", name: UIKeyboardDidShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil)
}
public func unsubscribeForKeyboardNotifications()
{
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardDidShowNotification, object: nil);
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardWillHideNotification, object: nil);
}
//MARK: Keyboard events
public func keyboardWasShown(notification: NSNotification)
{
}
public func keyboardWillHide(notification: NSNotification)
{
}
}
Но каждый раз, когда клавиатура должна быть представлена она падает с этой ошибкой:
*** NSForwarding: warning: object 0x7fdc8d882730 of class 'KeyboardScrollController' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[KeyboardScrollController keyboardWillHide:]
Я попытался с Selecor("keyboardWillHide:")
, но это не делает любой разница.
Что здесь не так? Я реализовал это несколько раз в Objective-C, но я не могу заставить его работать в Swift.