2017-07-26 103 views
0

由于键盘不支持“数字和小数”类型,我正在使用自定义键盘和Apple审核团队拒绝该键盘。iOS自定义键盘类型

所以,我发现问题是,当文本字段需要这些特定类型的键盘(例如插入年龄,度量或其他数值)时,我的键盘'错过了回应'。

我明白,从Apple文档阅读,您必须响应每个文本对象的UIKeyboardTpye属性。

我搜索了UIInputViewController的具体代表,但我无法找到与之相近的东西。

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

我想这个响应者在你的键盘以某种方式向iOS声明它可以处理Numbers或Decimal类型时被调用。事实上,我创建了一个简单的应用程序有一个简单UITextView需要十进制键盘类型:

textView.keyboardType = UIKeyboardTypeDecimalPad; 

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

正如我点击的文本查看我的委托不叫,而不是标准的十进制键盘和显示在Xcode控制台我看到以下消息:

找不到keyplane支持类型8用于键盘iPhone-Portrait-DecimalPad;使用405786210_Portrait_iPhone-简单Pad_Default

我也注意到,此消息正值当UITextView要求不被允许的键盘类型,即phonepad。所有其他键盘类型不会发出该消息,并显示自定义键盘,并正确调用代理。

数字和小数类型肯定是允许的,并且是审核团队成员必须的。为什么表现为禁忌类型?

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

非常感谢您的帮助!

回答

2

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

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

在iPhone上,需要数字或十进制类型键盘的文本视图始终显示iOS键盘,即不调用自定义扩展名。

另一方面,在iPad上,需要数字或十进制类型键盘的文本视图激活自定义扩展。

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