カスタムUITextInput
ベースのテキスト エディタを使用しています。マークされたテキストを介した多段階入力を除いて、非常にうまく機能します。
マークされた領域が正しくレンダリングされ、マークされたテキストが挿入されますが、キーボードの上の候補リストが空白です。
たとえば、標準の UITextView で候補を表示する日本語 (かな) キーボードは次のとおりです。
そして、これが同じマークされたテキストを表示するカスタム エディターです。
この問題のデバッグに数日を費やしたところ、原因はメソッドに対してUIKeyboardImpl
返されたプライベート クラスであることがわかりましたNO
delegateSupportsCorrectionUI
このメソッドをカテゴリ on でオーバーライドして代わりにUIKeyboardImpl
返すYES
と、テキスト エディターで多段階の入力候補が正しく表示されます。ただし、これは問題の根本的な原因に対処していません (そして使用できません)。
また、Apple の SimpleTextInput サンプル コードも詳しく調べました。これにより、基本的な Core Text エディターが実装されます。SimpleTextInput は多段階の入力候補を正しく表示しますが、その実装に単一の違いを見つけることができず、UITextInput
それが機能し、私のものが壊れているようには見えません。
(実際、SimpleTextInput サンプルのマルチステージ入力を表示する機能を「壊す」ことはできません。そのため、UITextInput
実装に重点を置いているのは間違っていると思います。それはまったく別のことです。)