我知道这个问题有好几次,但我正在寻找一个使用Swift 3.0的实现。要清楚我有文本视图,而不是文本FIELD。
我尝试过这样的事情......
在viewDidLoad()
:
NotificationCenter.default.addObserver(self, selector: Selector(("keyboardWillShow")), name:NSNotification.Name.UIKeyboardWillShow, object: nil);
NotificationCenter.default.addObserver(self, selector: Selector(("keyboardWillHide")), name:NSNotification.Name.UIKeyboardWillHide, object: nil);
然后我在ViewController中创建了这些方法:
func keyboardWillShow(sender: NSNotification) {
self.view.frame.origin.y = -150
}
func keyboardWillHide(sender: NSNotification) {
self.view.frame.origin.y = 0
}
当我选择文本视图时,我遇到了崩溃。
答案 0 :(得分:2)
您需要修改添加观察者代码,如下所述。 根据Swift 3迁移指南,这是声明添加观察者通知时应遵循的新方法。
代码:
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
我已经使用带有文本视图和通知中心的演示代码进行了检查。
希望它有所帮助...
快乐的编码......
答案 1 :(得分:0)
使用https://github.com/hackiftekhar/IQKeyboardManager并且不关心键盘问题。如果您仍想实现textview的默认行为,请指定崩溃。