2017-07-26 138 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上,需要數字或十進制類型鍵盤的文本視圖激活自定義擴展。

最後,在提供了標準數字小鍵盤(即使我的鍵盤使用手寫技術)後,它被批准。