如何解决选择器视图隐藏相应的文本字段
我在故事板中创建了多个 UITextField。一些文本字段使用键盘编辑,而其他文本字段使用选择器视图。在我的视图控制器中,对于使用 pickerView 的字段,我为每个文本字段创建了单独的选择器视图。例如。
aTextField.inputView = aPickerView
现在对于位于屏幕底部的文本字段,当我点击其中一个时,对应于该文本字段的选择器视图会在底部打开并隐藏文本字段。我想在选择器视图打开时将当前选定的文本字段向上移动。
在键盘的情况下,可以通过响应 UIResponder.keyboardWillShowNotification
来完成视图的转换。在选择器视图的情况下如何执行此操作?
解决方法
我能想到的一种解决方案是观察键盘高度。当您按下必须显示底部 textField 的选择器视图时,使用键盘高度和一些额外的点将其移动到键盘上。以下是一些帮助方法来实现这一点:
override func viewDidLoad() {
super.viewDidLoad()
// Add keyboard observers
addObservers()
}
private func addObservers() {
NotificationCenter.default.addObserver(self,selector: #selector(self.keyboardWillShow),name: UIResponder.keyboardWillShowNotification,object: nil)
NotificationCenter.default.addObserver(self,selector: #selector(keyboardWillHide),name: UIResponder.keyboardWillHideNotification,object: nil)
}
// keyboard will be active
@objc private func keyboardWillShow(notification: NSNotification) {
// Get keyboard Size
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
// update constraints / footerview height with keyboard height "keyboardSize.height"
}
}
// keyboard will dismiss
@objc private func keyboardWillHide(notification: NSNotification) {
if (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue != nil {
// update constraints / footerview height when keyboard is hidden,}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。