【发布时间】:2017-10-20 02:54:28
【问题描述】:
我在子视图中有两个文本字段,当在子视图中单击任何文本字段并出现键盘时,我试图将子视图向上移动。问题是当子视图打开时子视图向下移动并且我单击了第二个文本字段。当我触摸除文本字段之外的任何视图时,它应该隐藏。
我的两个textfield和subview的定义;
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var loginView: UIView!
viewDidLoad 中的代码
NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillHide), name: .UIKeyboardWillShow, object: nil)
还有另外两个显示和隐藏键盘的功能
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if loginView.frame.origin.y == 0{
let height = keyboardSize.height
self.loginView.frame.origin.y += height
}
}
}
func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if loginView.frame.origin.y != 0 {
let height = keyboardSize.height
self.loginView.frame.origin.y -= height
}
}
}
我想知道在子视图打开时单击文本字段时如何避免子视图向下。
【问题讨论】:
标签: swift keyboard uitextfield