通过 Storyboard 自定义键盘高度

Custom Keyboard Height via Storyboard

所以我正在制作一个自定义键盘,但由于某种原因它的高度是强制的。我尝试更改视图的属性和大小检查器中的一些选项,但无济于事。

这是我到目前为止的尝试。
Attempt 1 small
Attempt 1 temporary

如您所见,当我 运行 我的项目时,与 Apple 的 iOS 键盘相比,键盘的高度变得太小了。我注意到有那么一瞬间,键盘的高度变得正常(与 Apple 的 iOS 键盘大小相同)。

然后我尝试通过给键盘的包含视图一个固定的高度来强制高度,而不是仅仅将它固定到容器的顶部边框。可以用,但是覆盖了所有粗糙的屏幕,所以完全不实用。

所以我试着给它一个相对于容器高度的比例高度,使用不同的乘数值,比如 0.3,但它恢复到原来的行为。它还用白色背景填充了通常会被正确的 Apple iOS 键盘尺寸占用的剩余 space。

我使用的是 Vertical StackView,它包含 3 个带有所有按钮的 Horizo​​ntal StackView。我尝试删除 StackViews 并仅使用普通视图进行测试,但它也以相同的方式获得 sh运行k,所以我猜这与这是一个自定义键盘扩展这一事实有关。 至于代码,我没有在键盘的 ViewController 模板中编辑任何内容,除了按钮读取其标题和插入文本的操作。

如果不清楚,我通过创建一个单视图应用程序项目进入这个阶段,并向它添加一个自定义键盘扩展,作为一个新的目标。我添加了一个故事板,并将主界面指向它。

关于如何实现作为容器高度函数的自定义高度的任何想法?

非常感谢

我在 Reddit 上回答了你,但那是错误的。我的键盘设置与你不同。您是否尝试过在 viewDidLoad()

中添加约束
let constraint = NSLayoutConstraint(item: self.view,
                                           attribute: .height,
                                           relatedBy: .equal,
                                           toItem: nil,
                                           attribute: .notAnAttribute,
                                           multiplier: 0.0,
                                           constant: 500) // Set custom height here
self.view.addConstraint(constraint)