2

UIView Subclass追加したものがありUITextFieldます。このビューを Viewcontroller のトップ ビューとして設定しました。では、カスタム キーボードを提供するために getter をUIViewSubclassオーバーライドしました。inputViewController

を選択すると、が呼び出され、それに関連付けられたキーボードが表示されるとUITextField想定します。ただし、これとは別に、私のメソッドも呼び出され、テキストフィールドと UIView の入力ビューの両方が重ねて表示されます。また、自分の が表示されない、または呼び出されません。メソッドのみが呼び出され、カスタム キーボードが表示されます。becomeFirstResponderUITextFieldinputViewControllerUIView SubclasscanBecomeFirstResponderbecomeFirstResponderUIView's subclassinputViewController

ファーストレスポンダーになっていないのに、なぜ私に電話inputViewControllerがかかってくるのか、誰かが理解するのを手伝ってくれませんか.UIView's subclass

UPDATE アップルのドキュメントから - 「入力ビューは、テキストビューまたはカスタムビューのinputViewプロパティに割り当てられているシステムキーボードの代替品です。入力ビューがある場合、テキストオブジェクトが最初であってもUIKitがキーボードを交換することがあります非テキスト オブジェクトの場合、開発者に代わってキーボードのような入力ビューを表示する可能性があります。」

したがって、これを正しく理解していれば、UIResponder が UIView サブクラスで inputViewController を呼び出すのは理にかなっていますが、理想的には、テキストフィールドのキーボードを inputViewController と交換する必要がありますか? 明らかに、それはここでは起こっていません。

4

1 に答える 1