我试图让桌面视图适应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不滚动,为什么通知没有被触发?
此致
罗恩
答案 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")
}
希望这能解决你遇到的任何问题。