我的申请有问题。我实际上正在构建一个登录页面,但我找不到在文本字段处于事件状态时如何处理键盘。 我在一个 View 中有两个文本字段。在我的 superView 中,我有 3 个 View 。一个在底部,另一个在中间,最后一个在顶部。 这 3 个 View 嵌入在堆栈 View 中。
我真的很想缩小堆栈 View ,换句话说,只有当键盘出现时,才减少所有 3 个 View 之间的空间,而当键盘消失时,将大小设置回来,就像 iOS 上的 Facebook 登录页面一样。
最佳答案
您需要订阅键盘通知并在 viewDidLoad 中执行此操作
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: .UIKeyboardWillHide, object: nil)
//
@objc func keyboardWillShow(notification: NSNotification) {
self.stackV.spacing = 10
UIView.animate(withDuration: 0.3, animations: { () -> Void in
self.view.layoutIfNeeded()
})
}
@objc func keyboardWillHide(notification: NSNotification) {
self.stackV.spacing = // set back to default
UIView.animate(withDuration: 0.3, animations: { () -> Void in
self.view.layoutIfNeeded()
})
}
关于ios - iOS 中的键盘处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897992/