iOS自定义键盘类型
由于键盘不支持“数字和小数”类型,我正在使用自定义键盘和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
,我们的扩展支持各种键盘类型,但是......好多或者更简单......我不明白......所以......我在问......如何将多种键盘类型添加到我的键盘扩展中?
非常感谢您的帮助!
第二次拒绝我的键盘扩展后,他们给我发了一张截图。我注意到他们通常在iPad上测试应用程序。这让我想到了。
经过一些测试后发现,Numbers和Decimal类型在iPhone和iPad上的响应方式不同。
在iPhone上,需要数字或十进制类型键盘的文本视图始终显示iOS键盘,即不调用自定义扩展名。
另一方面,在iPad上,需要数字或十进制类型键盘的文本视图激活自定义扩展。
最后,在提供了标准数字小键盘(即使我的键盘使用手写技术)后,它被批准。