iOS8键盘扩展clipsToBounds

4
我正试图编写一个iOS8自定义键盘,目前来看,除了偶尔出现的小问题外,我还没有遇到太多问题。然而,当我创建一个视图并将其作为UIButton的子视图添加到键盘视图中时,新添加的视图在键盘视图的顶部被裁剪。据我所知,层次关系如下: UIView(弹出)->UIButton(实际“键”)-> UIInputView 在这个层次结构中,顶级UIViewUIInputView内被裁剪。每个UIView都已将clipsToBounds设置为false,而且我也在UIInputViewController内将UIView (self.view)设置为false,但似乎没有什么帮助。
这可能是当前扩展系统的限制,但希望这只是我做的愚蠢之处!

1
系统不允许这样做。此外,当您在iPhone上点击顶部行中的键时,系统键盘会在顶部行上方显示关键艺术品,但无法在此行之上显示。 - Spentak
Joseph - 你能给我发送你代码的链接吗?我正在尝试添加子视图,但键盘总是空白,并且不显示我的UIButtons。我很想看到一个正常工作的实现。 - Spentak
@Spentak,我刚在文档中找到了那个引用,谢谢。这似乎太过严格,以至于无法制作类似iOS的键盘,这真是太遗憾了。当您创建一个新的键盘扩展目标时,它会提供一些示例代码和一个按钮,以便带您进入下一个键盘,可以将其用作起点吗? - Joseph Duffy
可能是我的问题的重复:https://dev59.com/sITba4cB1Zd3GeqP1yXZ#26409730 如果您检查视图层次结构,您会发现持有键盘扩展的UIWindow并没有延伸到键盘上方,因此即使您在整个视图层次结构中关闭了clipsToBounds,您仍然无法在窗口外显示。 - Muzammil
1个回答

5
这实际上是不可能的。根据文档所述,“此外,不可能像iPhone系统键盘在顶部行中显示按键艺术品那样,在顶部行上方显示按键艺术品。”这真是遗憾。
感谢@Spentak指出这一点。

谢谢!简直不敢相信苹果会加上这种愚蠢的限制。我们无法在自定义键盘上显示按键弹出窗口,因为它被裁剪了!真是太遗憾了!你有什么解决办法吗?我真的想在键盘区域之外显示一些东西。 - Vince Yuan
该指南已经在beta5中发生了变化。 - lucaconlaq
@Luka,您能否提供链接到声明的文档?我刚刚制作了一个简单项目,仍然无法在键盘视图之外绘制,并且最初链接的文档仍然说明这是不可能的。 - Joseph Duffy
看一下这个链接:https://dev59.com/vIHba4cB1Zd3GeqPYPdt#25675775。我确定他们在beta5发布时更改了文档。 - lucaconlaq
@Luka 这只是显示更改键盘的大小,而不是在键盘视图之外绘制。虽然您可以增加键盘的大小并使顶部部分透明,但很可能无法将触摸事件发送到后面的视图。这目前并不能解决在键盘视图之外绘制某些内容的问题。 - Joseph Duffy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接