私はUITextField
を追加したUIView Subclass
を持っています。私はViewControllerのトップビューとしてこのビューを設定しました。 UIViewSubclass
では、私はカスタムキーボードを提供するためにinputViewController
getterをオーバーライドしました。superviewのinputViewControllerは、サブビュー(UITextView)でタップすると呼び出されます
UITextField
を選択すると、becomeFirstResponder
のUITextField
が呼び出され、それに関連付けられたキーボードが表示されます。 しかし、これとは別に、私のUIView Subclass
のinputViewController
メソッドも呼び出され、テキストフィールドとUIViewの入力ビューが重なり合って表示されています。私もUIView's subclass
に電話しているcanBecomeFirstResponder
またはbecomeFirstResponder
が表示されません。 inputViewController
メソッドが呼び出され、カスタムキーボードが表示されます。
最初のレスポンダになっていなくても、なぜinputViewController
が私のUIView's subclass
に呼ばれているのか分かりません。アップルのドキュメントから
UPDATE - 「入力ビューは、テキストビューまたはカスタムビューのinputViewプロパティに割り当てられているシステムのキーボードの代用で入力ビューがある場合は、UIKitには、スワップアウトすることがあります。テキストオブジェクトが最初のレスポンダであっても、キーボード以外のオブジェクトに対するキーボードのような入力ビューを開発者に代わって表示する可能性があります。
これを正しく理解すれば、UIResponderがUIViewサブクラスでinputViewControllerを呼び出すのは理にかなっていますが、理想的にはinputViewControllerでテキストフィールドのキーボードをスワップアウトする必要がありますか?明らかにそれはここで起こっていない。
あなたはこれに解決策を見つけましたか? – aunindo