UITableViewController没有响应键盘

时间:2014-08-11 11:45:05

标签: uitableview swift uitextfield uikeyboard

我试图让桌面视图适应Swift中键盘的显示。 根据文档,如果它是UITableViewController的子类,则tableview应自动调整。 已经在这里阅读了很多答案,只是为了确保我得到了所有答案:

  • 它是UITableViewController的子类

    class SettingsController: UITableViewController

  • ViewWillAppear未被覆盖,因此我无需致电super.viewWillAppear(true)

我在静态tableview单元格中只有一个文本字段,但是当键盘出现时,tableview不会滚动。

除此之外,我尝试实施通知

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

具有功能

func keyboardWasShown(notification: NSNotification) {
    println("Keyboard shown")
}

但是函数永远不会被调用。

谁能帮帮我呢?为什么tableview不滚动,为什么通知没有被触发?

此致

罗恩

1 个答案:

答案 0 :(得分:0)

我认为问题在于你将self作为对象传递给函数。 Self属于SettingsController类型,因此当它查找名为" keyboardWasShown的方法时:"使用SettingsController参数,它找不到一个。这可以通过两种方式修复,或者更改第一行以传递零值:

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

或者更改方法以接受SettingsController

func keyboardWasShown(settingsController: SettingsController) {
    println("Keyboard shown")
}

希望这能解决你遇到的任何问题。