在 NotificationCenter 键盘上获取发件人将显示
Get sender on NotificationCenter keyboard will show
我目前正在开发一款在一个滚动视图中包含多个文本字段和 2 个文本视图的应用。在键盘外观上,我已经能够更改滚动视图的内容插入,以便不隐藏字段。我遇到的问题是我只能让它在一个硬编码字段上工作。我必须选择一个并为其设置动画。有没有办法在 keyboardWillShow
上获取发件人字段或文本视图?目前,我正在使用它并且一切正常,除了如上所述我必须选择一个字段 detailsTxtView
并为其设置动画。有帮助吗?
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(notification:)),name: NSNotification.Name.UIKeyboardWillShow, object: nil)
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
let contentInsets: UIEdgeInsets? = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height, 0.0)
scrollView.contentInset = contentInsets!
scrollView.scrollIndicatorInsets = contentInsets!
let goto = CGPoint(x: CGFloat(0.0), y: CGFloat(detailsTxtView.frame.origin.y + (keyboardSize.height + 40)))
scrollView.setContentOffset(goto, animated: true)
}
}
在 iOS 中,您可以使用 UIResponder.isFirstResponder 找出谁拥有键盘焦点(请注意所有 UIView 都继承自 UIResponder,因此每个视图上都有一个 属性)。只需检查哪个字段有 isFirstResponder = true 并滚动到那个字段。如果您有很多字段,那么将所有字段放入一个出口集合中很有用,这样您就可以遍历它们并找出哪个是 FirstResponder。
我目前正在开发一款在一个滚动视图中包含多个文本字段和 2 个文本视图的应用。在键盘外观上,我已经能够更改滚动视图的内容插入,以便不隐藏字段。我遇到的问题是我只能让它在一个硬编码字段上工作。我必须选择一个并为其设置动画。有没有办法在 keyboardWillShow
上获取发件人字段或文本视图?目前,我正在使用它并且一切正常,除了如上所述我必须选择一个字段 detailsTxtView
并为其设置动画。有帮助吗?
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(notification:)),name: NSNotification.Name.UIKeyboardWillShow, object: nil)
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
let contentInsets: UIEdgeInsets? = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height, 0.0)
scrollView.contentInset = contentInsets!
scrollView.scrollIndicatorInsets = contentInsets!
let goto = CGPoint(x: CGFloat(0.0), y: CGFloat(detailsTxtView.frame.origin.y + (keyboardSize.height + 40)))
scrollView.setContentOffset(goto, animated: true)
}
}
在 iOS 中,您可以使用 UIResponder.isFirstResponder 找出谁拥有键盘焦点(请注意所有 UIView 都继承自 UIResponder,因此每个视图上都有一个 属性)。只需检查哪个字段有 isFirstResponder = true 并滚动到那个字段。如果您有很多字段,那么将所有字段放入一个出口集合中很有用,这样您就可以遍历它们并找出哪个是 FirstResponder。