我正在尝试滚动视图(以防止键盘隐藏文本字段),但我似乎无法让键盘通知正常运行。
此代码基于Apple的文档(请参阅here)。
首先,我们在viewDidLoad()
子类的UIViewController
中添加侦听器。
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWasShown"), name: UIKeyboardDidShowNotification, object: nil)
当事件触发时,它会立即崩溃并显示unrecognized selector
错误消息,甚至不会打印到控制台:
func keyboardWasShown(notification: NSNotification) {
println("Keyboard will be SHOWN")
}
但如果没有参数,我会在控制台中显示“键盘将显示”。
func keyboardWasShown() {
println("Keyboard will be SHOWN")
}
我做错了什么?
答案 0 :(得分:1)
那是因为你使用的选择器并没有指定它应该通知的方法有一个参数。
试试这个:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWasShown:"), name: UIKeyboardDidShowNotification, object: nil)
(请注意选择器中的:
。)
请参阅Objective-C: Calling selectors with multiple arguments(这仍适用于Swift)。