在 iOS 上使用故事板显示自定义键盘构建

Posted

技术标签:

【中文标题】在 iOS 上使用故事板显示自定义键盘构建【英文标题】:Displaying custom keyboard build with storyboard on iOS 【发布时间】:2015-11-03 14:14:20 【问题描述】:

好的,我正在 Xcode 7.1 中为 ios 开发一个自定义键盘,但我遇到了一个问题...

使用 NSExtensionPrincipalClass,即开箱即用的解决方案,工作正常,但是当我使用 Storyboard 并将 plist 中的该条目替换为“NSExtensionMainStoryboard”时,它仅适用于模拟器而不是物理设备上...在物理设备上,它只是在尝试选择它时切换回以前的键盘...

在其他 SO 帖子中,我看到有人说将 RequestsOpenAccess 设置为 TRUE 对他们有用,但这里没有运气......

您可以在下面看到我在plist 中的扩展条目...

<key>NSExtension</key>
<dict>
  <key>NSExtensionMainStoryboard</key>
  <string>Keyboard</string>
  <key>NSExtensionAttributes</key>
  <dict>
    <key>IsASCIICapable</key>
    <false/>
    <key>PrefersRightToLeft</key>
    <false/>
    <key>PrimaryLanguage</key>
    <string>en-US</string>
    <key>RequestsOpenAccess</key>
    <true/>
  </dict>
  <key>NSExtensionPointIdentifier</key>
  <string>com.apple.keyboard-service</string>
</dict>

我没有分享我剩余的任何代码,因为它可以在模拟器上运行,所以我猜这是某种设置问题或错误?

在 Xcode 中,我可以看到日志:

插件“xxx”中断

插件“xxx”无效

关于我缺少什么的任何想法?任何帮助将不胜感激...

【问题讨论】:

我目前遇到了同样的问题。你解决了这个问题还是NSExtensionMainStoryboard 只是不适用于键盘扩展? 【参考方案1】:

我刚刚通过检查情节提要中视图控制器的属性检查器中的Is Initial View Controller 框解决了同样的问题。这是有道理的,因为应用程序需要在启动时找到要初始化的第一个 VC。

复选框的图像:

【讨论】:

以上是关于在 iOS 上使用故事板显示自定义键盘构建的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发系列--TableView多个TableViewCell自定义CellCell上画画(故事板+代码方式),ios7tableview索引

来自故事板的自定义 UIButton

自定义字体显示在故事板上,但不在模拟器、设备上

自定义捆绑在 iOS 框架文件中的故事板

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

播放声音的 iOS 8 自定义键盘