Xcode 6 - UIKeyboardDidShowNotification无法识别的选择器

时间:2015-02-27 02:03:33

标签: ios swift nsnotificationcenter unrecognized-selector

我正在尝试滚动视图(以防止键盘隐藏文本字段),但我似乎无法让键盘通知正常运行。

此代码基于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")
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

那是因为你使用的选择器并没有指定它应该通知的方法有一个参数。

试试这个:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWasShown:"), name: UIKeyboardDidShowNotification, object: nil)

(请注意选择器中的:。)

请参阅Objective-C: Calling selectors with multiple arguments(这仍适用于Swift)。