NSTextViewを継承するクラスがあります。初期化時にsetContinuousSpellCheckingEnabled(true)
という自動スペルチェックが設定され、フォーカスを当てれば最初のレスポンダとして設定されます。私が今までに見てきたすべての質問と回答に基づいて、これはスペルチェッカーが適切に動作することを保証するのに十分なはずです。NSTextViewの自動スペルチェックが正しく機能しない
しかし、私が見た目に不器用な言葉を入力すると、単語が比較的速く入力されない限り、スペルの間違った単語に下線が引かれません。つまり、「asdf」と入力した後にスペースを1秒半ほど入れると、スペルチェッカーが適切に下線を引いています。しかし、私が "asdf"を遅く入力した場合、または "asdf"と入力してもすばやくタイプしてもスペースを追加する前に1秒待っても、下線は表示されません。
これにより、以下に示す競合するスペルの評価を複数回入力した同じ単語が表示される可能性があります。私は赤い下線が一瞬のために表示され、その後すぐに、私が入力したスペルに誤りの単語から消えましたどこ
は、テスト中に一度もありました。また、焦点が離れるとテキストビューに戻ると、ピントが合ってから約1秒後にすべてのスペックルアンダーラインがすべてのスペルミスの下に正しい場所に表示されます。しかし、追加のテキストを入力すると、上記の問題が発生します。
これは、彼らはすぐに不当に彼らは前のビュー
を中心にテキストビューに入力されていたを入力している
ない限り、スペルミスに下線をされないことを意味します
私が前に言ったように、関連するすべてのスレッドを見て、
makeFirstResponder()
とを呼び出して遊んでいますは広範囲に渡り、私はちょうどアイデアがなくなってしまった。先週から私はいくつかのことを試しましたが、そのうちの1つが約束を示しています。 TextView関数
setSpellingState
を使用すると、私はプログラムして、赤いくすんだ下線をTextView内のどこにでも表示させることができます。この関数を呼び出すと、ビューのどこかに赤い塊が表示されると、詰まり線は短時間しか表示されません。波打つ赤い下線が表示され、「asdf」バグで見たのとほぼ同じ量の遅延の後、波線が消えます。これは、問題がCocoa APIのいくつかをオーバーライドするC#コードで発生する可能性があると考えるようになります。これはOSXの問題ですか?スペルチェッカーが正しく単語に下線を付けるかどうかを判断する要素を入力する速度として、何かが恣意的なのはなぜですか?
P.S.このコードは、Cocoa APIのマシン生成ラッパーであるMCocoaを使用しているため、Objective-C構文とは異なる構文になっています。現在NSTextViewを参照するために使用しているC#コードは、MacOSX 10.5 SDKから生成されました