(Swift)移动视图的方式键盘?
问题描述:
我有一个奇怪的问题,移动我的意见,为传入的键盘腾出空间。基本上,在我的应用程序中,有一个执行segue的按钮,该按钮以模态方式嵌入导航控制器内部的视图控制器的新实例。在第一个例子中,我的键盘代码完美地工作。的代码如下:(Swift)移动视图的方式键盘?
func keyboardWillShow(sender: NSNotification) {
if !keyBoard {
self.view.frame.origin.y -= 200
}
keyBoard = true
}
func keyboardWillHide(sender: NSNotification) {
if keyBoard {
self.view.frame.origin.y += 200
}
keyBoard = false
}
在viewDidLoad中执行以下操作:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
我还添加了tapGestureRecognizer使得当键盘是表示与用户的任意位置点击屏幕上,键盘关闭:
let tapped = UITapGestureRecognizer(target: self, action: "closeKeyboard")
tapped.numberOfTapsRequired = 1
self.view.addGestureRecognizer(tapped)
和
func closeKeyboard() {
self.view.endEditing(true)
}
所以在第一个例子中,这段代码完美地工作。然而,在我回去之后,调用self.dismissViewControllerAnimated,并且,一旦我在原始屏幕上,再次单击调用performSegue的按钮并推送同一视图控制器的新实例,代码就会中断并且视图不再移出键盘的方式,但只是一些口吃和反弹一点点。我不知道为什么会发生这种情况,任何帮助将非常感激。谢谢!
答
尝试在keyboardWillShow
和keyboardWillHide
上放置断点,并告诉我是否在返回到第二个ViewController时调用了这两个方法。
是的方法被调用。他们似乎不再以同样的方式工作 – Jared