gpt4 book ai didi

ios - iPad OS 是否可以检测键盘是否处于 float 模式?

转载 作者:行者123 更新时间:2023-12-02 00:51:36 25 4
gpt4 key购买 nike

我们在 iOS/iPadOS 上遇到了一个特定错误,当 iPad 在屏幕上显示 float (类似 iPhone)键盘(而不是固定键盘)时,该错误似乎会被触发

我们的问题特定于 React Native 和 KeyboardAvoidingView 组件。当组件渲染且键盘 float 时,KeyboardAvoidingView 完全错误地计算了键盘所需的高度,并隐藏了大约 95% 的屏幕高度。

KeyboardAvoidingView本身似乎没有办法检测 float 键盘是否打开。

是否有一个特定的 API 可以用来检测此键盘模式,以便我们可以关闭它的 KeyboardAvoidingView

键盘事件(keyboardWillShowkeyboardDidShow等)似乎没有返回任何具体线索。

最佳答案

没有这样的模式枚举/指示器(至少目前如此),但有键盘框架信息

public class let keyboardFrameBeginUserInfoKey: String // NSValue of CGRect
public class let keyboardFrameEndUserInfoKey: String // NSValue of CGRect

在相应的键盘通知中

public class let keyboardWillShowNotification: NSNotification.Name

public class let keyboardDidShowNotification: NSNotification.Name

public class let keyboardWillHideNotification: NSNotification.Name

public class let keyboardDidHideNotification: NSNotification.Name

public class let keyboardWillChangeFrameNotification: NSNotification.Name

public class let keyboardDidChangeFrameNotification: NSNotification.Name

相对于屏幕边界

UIScreen.main.bounds

可以检测键盘边框是否在屏幕底部边缘或 float 。

从原理上讲,它就像

keyboardAttached = NSMaxX(screenBounds) == NSMaxX(keyboardFrame) &&
NSMaxY(screenBounds) == NSMaxY(keyboardFrame) &&
NSWidth(screenBounds) == NSWidth(keyboardFrame)

关于ios - iPad OS 是否可以检测键盘是否处于 float 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59871352/

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