通过情节提要自定义键盘高度

Posted

技术标签:

【中文标题】通过情节提要自定义键盘高度【英文标题】:Custom Keyboard Height via Storyboard 【发布时间】:2017-03-17 23:25:22 【问题描述】:

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

这是我迄今为止的尝试。Attempt 1 smallAttempt 1 temporary

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

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

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

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

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

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

非常感谢

【问题讨论】:

我不明白为什么我的问题被否决了,即使这个问题从未在 Stack Overflow 上得到正确回答。 我也面临同样的问题,还没有找到解决办法。我正在寻找 gBoard 到底喜欢什么。一旦你得到解决方案,请告诉我。我的问题***.com/questions/48802380/… 【参考方案1】:

我在 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)

【讨论】:

由于我的学习,我还没有机会尝试任何建议,但我尝试的一件事是在 XIB 文件中设计我的键盘。令人惊讶的是,它就像一个魅力,它继承了 Apple 的 iOS 默认键盘的高度,无论设备大小和方向如何。我可能不需要更改高度,因为默认键盘的高度很好(至少在我项目的这个阶段),但至少它不像我在 Storyboard 中遇到的问题,它会自行缩小。 好吧,这实际上与键盘的 NIB 文件一起工作得很好。所以在不设置约束的情况下,键盘会继承默认的 iOS 键盘高度。这简直完美。我在 updateViewConstraints() 方法中添加了代码,在 viewDidLoad() 中添加了 NIB 的代码。运行良好并自动适应不同的方向。我仍然想知道 Storyboards 到底有什么问题:S 我将您的解决方案标记为已接受。再次感谢:)

以上是关于通过情节提要自定义键盘高度的主要内容,如果未能解决你的问题,请参考以下文章

在 xcode 中的自定义视图中给出高度后刷新情节提要视图控制器

如何更改iOS自定义键盘的高度?

iOS自定义键盘高度启动故障

iOS 8自定义键盘:更改高度

在 iOS9 公测中设置自定义键盘高度

旋转时更改自定义键盘的高度