をUIView Subclass
追加したものがありUITextField
ます。このビューを Viewcontroller のトップ ビューとして設定しました。では、カスタム キーボードを提供するために getter をUIViewSubclass
オーバーライドしました。inputViewController
を選択すると、が呼び出され、それに関連付けられたキーボードが表示されるとUITextField
想定します。ただし、これとは別に、私のメソッドも呼び出され、テキストフィールドと UIView の入力ビューの両方が重ねて表示されます。また、自分の が表示されない、または呼び出されません。メソッドのみが呼び出され、カスタム キーボードが表示されます。becomeFirstResponder
UITextField
inputViewController
UIView Subclass
canBecomeFirstResponder
becomeFirstResponder
UIView's subclass
inputViewController
ファーストレスポンダーになっていないのに、なぜ私に電話inputViewController
がかかってくるのか、誰かが理解するのを手伝ってくれませんか.UIView's subclass
UPDATE アップルのドキュメントから - 「入力ビューは、テキストビューまたはカスタムビューのinputViewプロパティに割り当てられているシステムキーボードの代替品です。入力ビューがある場合、テキストオブジェクトが最初であってもUIKitがキーボードを交換することがあります非テキスト オブジェクトの場合、開発者に代わってキーボードのような入力ビューを表示する可能性があります。」
したがって、これを正しく理解していれば、UIResponder が UIView サブクラスで inputViewController を呼び出すのは理にかなっていますが、理想的には、テキストフィールドのキーボードを inputViewController と交換する必要がありますか? 明らかに、それはここでは起こっていません。