iOS 8 键盘扩展 - UIInputViewController 无法添加多个视图 [关闭]

Posted

技术标签:

【中文标题】iOS 8 键盘扩展 - UIInputViewController 无法添加多个视图 [关闭]【英文标题】:iOS 8 Keyboard Extension - UIInputViewController can't add multiple views [closed] 【发布时间】:2014-07-10 18:48:36 【问题描述】:

我认为键盘扩展上的 UIInputViewController 有一些限制。

第一个问题:

我从不向 inputView 或视图添加子视图,但是当我从 nib 创建视图实例时,它会自动将该视图设置为默认视图。不正常。

第二个问题:

我在一个 XIB 文件中有两个单独的视图。

一个用于字母键盘(及其子视图),另一个用于数字键盘(及其子视图)。我可以让这个键盘出现的唯一方法是使用:

self.view!.insertSubview(self.mainViewNumberKeyboard, aboveSubview: self.mainViewLetterKeyboard)

这使它可见,但视图不接受用户交互。来自底层字母键盘的键会拦截所有视图。

如果我这样做 self.mainviewLetterKeyboard.hidden = true 两个视图都会消失(字母和数字键盘)。 (这是我认为 Apple 可能存在错误或问题的地方 - 这不应该发生)

如果我有两个单独的 XIB 文件,每个文件都有自己的键盘,我也会遇到类似的问题。看来 UIInputViewController 不希望您从其父视图中完全删除视图。

第三个问题:

self.inputView 似乎不起作用。添加子视图会导致键盘崩溃,而 self.view!.insertSubview 似乎是让我的数字键盘出现的唯一方法

期望的结果

    用户按下键盘上的 123 按钮 字母键盘已从超级视图中移除 UIInputViewController.view 中添加了数字键盘 用户按数字键盘上的 ABC 数字键盘已从超级视图中移除 UIInputViewController.view 中添加了字母键盘

任何人成功地在键盘扩展上添加和删除 MULTIPLE 视图?

【问题讨论】:

是的,我做到了。我没有使用 NIB 来创建我的键盘按钮及其视图。一切仅通过代码完成。 【参考方案1】:

UIInputViewcontroller 有一个名为 inputViewUIInputView 引用,它扩展了 UIView

inputView 是您添加子视图的视图。

这能回答你的问题吗?

【讨论】:

没有。我知道这个。我所说的(上述问题之一)是 inputView 无法正常工作【参考方案2】:

我的问题与 Xcode 6 Beta 2 问题有关。您现在可以在 Xcode Beta 3 中正确加载 XIB 文件。

本教程将逐步完成: http://verisage.us/blog/2014/07/17/ios-8-custom-keyboard-swift-tutorial/

【讨论】:

你的链接好像坏了...code.tutsplus.com/tutorials/…

以上是关于iOS 8 键盘扩展 - UIInputViewController 无法添加多个视图 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

自定义键盘应用程序扩展 iOS 8 上的 Siri

在 iOS 8 键盘扩展中实现自动更正

获取 ios 8 自定义键盘扩展的“因内存错误而终止”

iOS 8 键盘扩展 - UIInputViewController 无法添加多个视图 [关闭]

iOS 8 键盘扩展:出现呼叫栏时出现约束错误?

IOS 8 App Group 访问键盘扩展中的容器应用程序文件