Один из моих проектов - это тестовое приложение, в котором ученик не должен легко искать слова во время их ввода.
Относительно легко отключить автоматическую проверку орфографии в NSTextView с помощью setContinuousSpellCheckingEnabled:
и setAutomaticSpellingCorrectionEnabled:
.
Я только что обнаружил, что для студентов очень тривиально просто коснуться тремя пальцами по любому выбранному слову в любом приложении и всплывает полезное окно содержащий словарь, тезаурус и даже запись в Википедии, если там можно найти слово.
Это отличная функциональность для 99% приложений MacOS, но не подходит для моего тестового приложения.
Теперь, спустя несколько месяцев, Apple предоставила мне (недокументированное и тонкое) решение, которое работает только для 10.8, и я могу в конечном итоге предоставить его в ответах ниже, но мне нужно, чтобы иметь решение, которое работает и для 10.7 (именно там и появилась эта функциональность).
Есть три возможных плана атаки на эту проблему, но я не уверен, как подойти к любому из этих трех:
1)
Мне нужно заблокировать эту функцию Lookup в этом текстовом представлении.
2)
Я уже пытался удалить настройки словаря (если они существуют, если пользователь никогда не открывал Dictionary.app, нет никаких предпочтений) и файлы кеша словаря (в "~/Library/Cache
", но это не похоже, улучшают ситуацию.
3)
Или есть ли способ обнаружить параметр трекпада, который говорит "Использовать поиск при выполнении трех пальцевого крана"? Это возможно в некотором com.apple. *. Plist где-то или обнаруживается через "defaults
", но я не уверен, где.
EDIT:
Осталось только немного времени, чтобы, надеюсь, решить эту проблему и наградить щедростью. Вот такой подход, который я пытался с помощью 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
" ), окно LookUp словаря все еще появляется.
Теперь это единственное, что работает, но оно работает только под MacOS 10.8 (где эти методы были выставлены/привезены). Просто переопределите эти два метода в подклассе NSTextView:
- (void)quickLookWithEvent:(NSEvent *)event;
- (void)quickLookPreviewItems:(id)sender;