gpt4 book ai didi

ios - 键盘高度 0

转载 作者:行者123 更新时间:2023-11-28 06:14:40 24 4
gpt4 key购买 nike

我正在尝试在用户键入时将堆栈 View 移动到键盘上方。我正在使用以下代码获取键盘的高度(取自 Move view with keyboard using Swift )。

键盘第一次出现时,代码有效,keyboardSize.height 打印出 226.0。但是,当键盘在第一次出现后重新出现时,keyboardSize.height 打印出的值为 0.0。结果,当键盘出现时,我无法始终向上移动堆栈 View 。有时,代码会在第一次尝试后再次运行,但不会持续超过一次,并且行为不一致。

当我简单地打印出 keyboardSize 时,我第一次得到 (0.0, 736.0, 414.0, 226.0)。第一次后,keyboardSize 打印出 (0.0, 736.0, 414.0, 0.0),因此只有高度不正确。

我怎样才能始终如一地获得键盘的高度?为什么会出现这个问题?

override func viewDidLoad() {
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}

@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue{
print(keyboardSize.height)
...
}
}

@objc func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue{ ... }
}

最佳答案

使用这个;

UIKeyboardFrameEndUserInfoKey

objective-c ;

CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

关于ios - 键盘高度 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com