在swiftui中获取自定义键盘区域的真实大小

问题描述 投票:0回答:1

我正在尝试使用 swift ui 制作一些自定义键盘。我遇到了一些问题。我无法检查显示的自定义键盘区域的实际大小。下面是一些截图。

我要检查其大小的区域是蓝色方块。这取决于我所做的快速视图。所以我做了一些逻辑,整个尺寸与屏幕尺寸有关。

出现这种情况的问题。如您所见,在横向模式下,存在一些额外的空间。蓝色方块不是完整的屏幕。为了更好地计算尺寸,需要获得额外空间的尺寸。

如果你有好的获取方式,请回答。谢谢。

ios swift keyboard
1个回答
0
投票

我之前的自我回答是错误的,所以我删除它并重新写。

键盘是应用程序扩展,因此无法在 swift ui 中获得实际大小。应该进入输入视图控制器。

使用 layoutMarginsGuide 获取区域大小。

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
        
    if let size = self.inputView?.layoutMarginsGuide.layoutFrame.size {
        //do something
    }
}

将这个值发送到swift view然后你可以用它来计算。

我的示例结果

© www.soinside.com 2019 - 2024. All rights reserved.