【发布时间】: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