我在自定义键盘上工作,而Apple审核小组拒绝了它,因为键盘不支持“数字和小数”'类型。
所以,我发现问题在于当文本字段需要那些特定类型的键盘时(例如插入年龄,度量或其他数值),我的键盘就会错过回复“#”。
我从Apple文档中了解到,您必须回复每个文本对象的UIKeyboardTpye
属性。
我搜索了UIInputViewController
的具体代表,但我无法找到与之相近的内容。
在这个论坛中,我发现检查当前所需键盘类型的一个好地方是textDidChange:
委托,但是,它没有被调用。
我想当你的键盘以某种方式声明'时,会调用这个响应者。到iOS,它可以处理数字或十进制类型。事实上,我创建了一个简单的应用程序,其中包含一个简单的UITextView
,需要十进制键盘类型:
textView.keyboardType = UIKeyboardTypeDecimalPad;
我在键盘扩展程序输入视图控制器NSLog()
委托中添加了textDidChange:
。
当我点击文本视图时,我的代理没有被调用,而是显示标准的十进制键盘,在Xcode控制台中我看到以下消息:
无法找到支持键盘iPhone-Portrait-DecimalPad类型8的键盘;使用405786210_Portrait_iPhone-Simple-Pad_Default
我还注意到,当UITextView
需要不允许的键盘类型,即手机时,会出现此消息。所有其他键盘类型都不会发出该消息,并显示自定义键盘并正确调用textDidChange:
委托。
数字和十进制类型肯定是允许的,并且对于审核小组的人来说是必须的。为什么表现为禁止类型?
我认为我们需要声明'例如在info.plist
中,我们的扩展程序支持各种键盘类型,但是......或者更简单......我没有得到点......所以...我问......如何在键盘扩展中添加多种键盘类型?
非常感谢您的帮助!
答案 0 :(得分:2)
第二次拒绝我的键盘扩展后,他们给我发了一个截图。我注意到他们通常在iPad上测试应用程序。这让我想到了。
经过一些测试后发现,数字和小数类型在iPhone和iPad上的响应方式不同。
在iPhone上,需要数字或十进制键盘的文本视图始终显示iOS键盘,即不调用自定义扩展名。
另一方面,在iPad上,需要数字或十进制键盘的文本视图激活自定义扩展。
最后,在提供标准数字小键盘后(即使我的键盘使用手写技术),它也获得批准。