自動修正機能を使用して複雑な状況をデバッグしようとしましたが、TextBoxで正しく処理されませんが、固まっています: SIPの自動修正提案のタップがTextBoxに伝達される仕組みが見つかりません。 KeyUp、KeyDown、TextInput、TextInputStart、およびTextInputUpdateイベントをトレースしましたが、TextBoxオブジェクトのTextの更新に関与していないようです。SIP自動修正がTextBoxにどのように伝達されるのですか?
背景:ギリシャ以外の言語を使用する場合
、自動補正が、それは私のアプリでテキストボックスのために必要として動作します。しかし、言語がギリシャ語に設定されている場合、提案された単語をタップすると何も起こりません...一方、標準の電話アプリのテキストボックス(たとえば、連絡先の「ノーツ」セクションにテキストを追加する)では、ギリシャの自動修正は完全に機能します。だから、私の最初の推測は、SIPではなくTextBoxに何か問題があるということです。私の計画はTextBoxをサブクラス化し、自動修正処理の部分だけを修正することです。
すべてのヘルプははるかに高く評価されるだろう、
Gerasimos
更新:
私はいくつかのテストを行い、これは、すべての非標準のアプリで問題になるようです。具体的には、eBayとSkyMapのアプリケーションをテストし、両方のケースで英語の自動修正が機能するのに対し、ギリシャ語は修正していません。
問題が再現するのは簡単です:
- は(自動修正が有効になっているinputScope付き)アプリケーションでテキストボックスを置く
- は
- タップ1-2ランダムギリシャ語のキーボードレイアウトを使用します手紙。
- 提案されている自動修正の1つをタップします。最終的なスペースだけが導入され、カーソルが2つのスペースの間にある場合(私がテストすることを好みたので)、何も起こりません。
私はフレームワークのどこかにアプリケーションコードではないバグがあると思います。この自動補正タップがTextBoxにどのように伝達されるのかわかりましたら...:
'TextChanged'イベントは起動しますか? – keyboardP
@keyboardPいいえ、TextChangedイベントは発生しません。 SelectionChangedイベントはどちらも起動しません。 – gedimitr
@keyboardPギリシャの自動修正を利用すると、TextBoxのテキストは更新されず、TextChangedイベントとSelectionChangedイベントは起動しません。英語の自動修正の場合、テキストが変更され、これら2つのイベントが放出されます。 – gedimitr