我的一个项目是一个测试应用程序,学生在打字时不应该能够轻松地查找单词。
setContinuousSpellCheckingEnabled:
通过和关闭 NSTextView 中的自动拼写检查相对容易setAutomaticSpellingCorrectionEnabled:
。
我刚刚发现,学生只需用三根手指在任何应用程序中的任何选定单词上轻按,然后弹出一个有用的窗口,其中包含字典、同义词库甚至维基百科条目(如果可以在那里找到该单词),这都是非常简单的。
这对 99% 的 MacOS 应用程序来说都是很棒的功能,但不适用于我的测试应用程序。
几个月后,Apple 为我提供了一个仅适用于 10.8 的(未记录且微妙的)解决方案,我最终可能会在下面的答案中提供它,但我需要一个也适用于 10.7 的解决方案(其中是这个功能出现的地方)。
针对这个问题有三种可能的攻击计划,但我不确定如何处理这三种中的任何一种:
1)
我需要阻止此查找功能在此文本视图中发生。
2)
我已经尝试删除字典首选项(如果它们存在;如果用户从未打开 Dictionary.app,则没有首选项)和字典缓存文件(在“ ~/Library/Cache
”中,但这似乎并没有改善这种情况。
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 子类中重写这两个方法:
- (void)quickLookWithEvent:(NSEvent *)event;
- (void)quickLookPreviewItems:(id)sender;