【问题标题】:iOS Custom Keyboard TypesiOS 自定义键盘类型
【发布时间】:2018-01-02 02:25:23
【问题描述】:

我正在开发自定义键盘,Apple 审核团队拒绝了它,因为该键盘不支持“数字和小数”类型。

所以,我发现问题在于,当文本字段需要那些特定类型的键盘(例如插入年龄、度量或其他数值)时,我的键盘“无法响应”。

我从 Apple 文档中了解到,您必须响应每个文本对象的 UIKeyboardTpye 属性。

我搜索了UIInputViewController 的特定代表,但找不到与此类似的东西。

在这个论坛中,我发现一个检查当前所需键盘类型的好地方是textDidChange: 委托,但是,它没有被调用。

我想当您的键盘以某种方式向 iOS“声明”它可以处理数字或小数类型时,会调用此响应程序。事实上,我用简单的UITextView 创建了一个简单的应用程序,它需要十进制键盘类型:

textView.keyboardType = UIKeyboardTypeDecimalPad;

我在键盘扩展输入视图控制器textDidChange:委托中放了一个NSLog()

当我点击文本视图时,我的代理没有被调用,而是显示标准的十进制键盘,并且在 Xcode 控制台中我看到以下消息:

找不到支持类型 8 的键盘 iPhone-Portrait-DecimalPad 的键盘;使用 405786210_Portrait_iPhone-Simple-Pad_Default

我还注意到,当UITextView 需要不允许的键盘类型(即电话键盘)时,会出现此消息。所有其他键盘类型都不会发出该消息,并且会显示自定义键盘并正确调用 textDidChange: 委托。

Numbers 和 Decimal 类型肯定是允许的,并且对于审核团队的人来说是必须的。为什么行为是禁止类型?

我认为我们需要“声明”,例如在info.plist 中,我们的扩展程序支持各种键盘类型,但是......好吧或更简单......我不明白这一点......所以...... .我在问...如何将多种键盘类型添加到我的键盘扩展中?

非常感谢您的帮助!

【问题讨论】:

    标签: ios custom-keyboard uikeyboardtype


    【解决方案1】:

    在我的键盘扩展第二次被拒绝后,他们给我发了一个屏幕截图。我注意到他们通常会在 iPad 上测试应用程序。这让我思考。

    经过一些测试,发现 Numbers 和 Decimal 类型在 iPhone 和 iPad 上的响应方式不同。

    在 iPhone 上,需要 Numbers 或 Decimal 类型键盘的文本视图始终显示 iOS 键盘,即不调用自定义扩展。

    另一方面,在 iPad 上,需要 Numbers 或 Decimal 类型键盘的文本视图会激活自定义扩展。

    最后,在提供了一个标准的数字小键盘(即使我的键盘使用手写技术)后,它被批准了。

    【讨论】:

      猜你喜欢
      • 2014-11-24
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2020-12-04
      • 2015-06-09
      • 1970-01-01
      相关资源
      最近更新 更多