Swift 出现键盘时移动视图

Swift move view when keyboard appears

我的视图中有六个 UITextField,我想决定视图是否必须移动。如何在移动视图之前检查选择了哪个 TextField?

这就是我显示键盘和移动视图的代码:

    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 - 85
            }
    }

    func keyboardWillHide(notification: NSNotification) {
            if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
                self.view.frame.origin.y += keyboardSize.height - 85
            }
    }

如果你想知道选择了哪个UITextField,你可以使用textFieldDidBeginEditingtextFieldDidEndEditing

func textFieldDidBeginEditing(textField: UITextField!) {
    currentSelectedTextField = textField
}

func textFieldDidEndEditing(textField: UITextField!) {
    currentSelectedTextField = nil
}

供您参考选择 UITextField 时如何管理键盘:https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html