gpt4 book ai didi

ios - 我怎样才能得到键盘的高度?

转载 作者:行者123 更新时间:2023-11-28 15:56:34 25 4
gpt4 key购买 nike

我必须在 UI 创建期间获取键盘的高度!所以我不能使用监视键盘高度的方法。我只是得到最终的静态高度,不是动态的~~怎么办

最佳答案

我可以告诉你,键盘高度在纵向是 216px,横向是 162px,但是使用固定的键盘高度是一个糟糕的选择。从 iOS 8 开始,用户可以选择不同的第三方键盘并启用或禁用预测文本,这可以使键盘框架更高。

iOS 提供方便的通知类型,可以在您的 View Controller 中观察到。这些通知是:

  • NSNotification.Name.UIKeyboardWillShow:在键盘显示前立即发布。
  • NSNotification.Name.UIKeyboardDidShow:在键盘显示后立即发布。
  • NSNotification.Name.UIKeyboardWillHide:在关闭键盘之前立即发布。
  • NSNotification.Name.UIKeyboardDidHide:在关闭键盘后立即发布。
  • NSNotification.Name.UIKeyboardWillChangeFrame:在键盘框架发生变化之前立即发布。
  • NSNotification.Name.UIKeyboardDidChangeFrame:在键盘框架发生变化后立即发布。

您可以通过将观察者添加到 View Controller 的 viewDidLoadviewDidAppear 方法中来注册这些通知:

NotificationCenter.default.addObserver(self, selector: #selector(YourViewController.keyboardWillShow(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)

此外,请记住将其删除到您的 deinit/viewDidDisappear 方法中: NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)

创建与您的观察者关联的方法(在本例中,keyboardWillShow(notification:):

func keyboardWillShow(notification : Notification) {
let info:NSDictionary = notification.userInfo! as NSDictionary
let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue
self.keyboardHeight = Double(keyboardSize.height)
}

引用:https://developer.apple.com/reference/foundation/nsnotification.name

关于ios - 我怎样才能得到键盘的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41648539/

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