【发布时间】:2016-07-02 15:13:52
【问题描述】:
我从this existing question 学到了让函数“keyboardwillshow”将整个视图向上移动相同的键盘高度,以避免底部的文本字段/文本视图被键盘覆盖。
但是,如果我连续点击两个或更多文本字段,“keyboardwillshow”函数将运行相同的点击次数,进一步向上移动视图并最终离开屏幕,只留下黑色空白。
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
self.view.frame.origin.y -= keyboardSize.height
}
}
func keyboardWillHide(notification: NSNotification) {
self.view.frame.origin.y = 0
}
有人在回答中说,我们可以实现一个布尔值来检测键盘是否已经出现,所以这个函数只会工作一次。
有人可以告诉我如何做这个布尔值吗?谢谢!
【问题讨论】: