私のプロジェクトの1つは、生徒が入力中に単語を簡単に検索できないようにするテストアプリです。
setContinuousSpellCheckingEnabled:
およびを介してNSTextViewで自動スペルチェックをオフにするのは比較的簡単setAutomaticSpellingCorrectionEnabled:
です。
アプリで選択した単語を3本の指でタップするだけで、辞書、シソーラス、さらにはWikipediaのエントリが含まれている便利なウィンドウがポップアップ表示されるのは、学生にとって非常に簡単なことです。
これは、MacOSアプリの99%にとっては優れた機能ですが、私のテストアプリには適していません。
数か月後、Appleは10.8でのみ機能する(文書化されていない微妙な)ソリューションを提供してくれました。最終的には以下の回答で提供する可能性がありますが、10.7でも機能するソリューションが必要です(この機能が登場したのはここです)。
この問題に対する攻撃の計画は3つありますが、これら3つのいずれかにアプローチする方法がわかりません。
1)
このルックアップ機能がこのテキストビューで発生しないようにブロックする必要があります。
2)
辞書の設定(存在する場合。ユーザーがDictionary.appを開いたことがない場合、設定はありません)と辞書のキャッシュファイル( " ~/Library/Cache
"内)を削除しようとしましたが、状況は改善されないようです。
3)
または、「3本の指でタップするときにルックアップを使用する」というトラックパッドの設定を検出できる方法はありますか?おそらくcom.apple。*。plistのどこかにあるか、「defaults
」で検出できますが、どこにあるかはわかりません。
編集:
うまくいけばこの問題を解決し、賞金を授与するのにほんの少しの時間が残っています。これが私が" defaults
"で試みたアプローチです:
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerTapGesture -bool false
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDoubleTapGesture -bool false
しかし、これらが入力する正しいジェスチャ/キーワードであるかどうかは100%確信していません。入力した後(および " defaults read com.apple.driver.AppleBluetoothMultitouch.trackpad
"で正しく保存されたことを確認した後)でも、辞書のルックアップウィンドウが表示されます。
これが機能する唯一のものですが、MacOS 10.8(これらのメソッドが公開/導入された場所)でのみ機能します。NSTextViewサブクラスの次の2つのメソッドをオーバーライドするだけです。
- (void)quickLookWithEvent:(NSEvent *)event;
- (void)quickLookPreviewItems:(id)sender;