@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.textView.frame.origin.y == 0 {
let height = keyboardSize.height
self.textButton.frame.origin.y -= height
Log.debug("height: \(height)")
}
}
}
@objc func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.textButton.frame.origin.y != 0 {
let height = keyboardSize.height
self.textButton.frame.origin.y += height
Log.debug("height: \(height)")
}
}
}
我有适当的观察者调用了这2个函数。问题是第二个键盘显示后键盘的高度发生了变化。这就是发生的事情=>
这是我设置按钮的位置:
textButton.frame = CGRect(x: textView.frame.width - 95, y: textView.frame.height , width: 70, height: 70)
这是从ViewDidLoad()调用的我的按钮函数
@objc func crossButtonTapped(_ sender:UIButton) {
self.textView.resignFirstResponder()
}
P.s。如果我希望键盘在单击按钮时显示,而在单击第二个按钮时隐藏,该怎么办?
谢谢!
首先,如果要添加粘贴在键盘上方的按钮,我建议使用“ UIToolbar”。
关于您的PS非常简单:
@objc func crossButtonTapped(_ sender:UIButton) {
self.textView.isFirstResponder ? self.textView.resignFirstResponder() :
self.textView.becomeFirstResponder()
}
希望有帮助:)