代码之家  ›  专栏  ›  技术社区  ›  Noah H

如何通过终端或Swift禁用三指轻拍手势?

  •  1
  • Noah H  · 技术社区  · 6 年前

    我正在尝试禁用在macOS应用程序中使用三个手指轻触来显示单词定义。我使用Xcode和Swift加载web视图和文本视图(以及按钮)。我希望用户仍然能够突出显示视图中的文本,但不要使用三指轻触。我在想,我可以通过运行终端命令或在Xcode中运行Swift命令来更改苹果的默认设置(启用三指轻触)。我正在寻找我可以使用的终端命令或Swift代码来禁用它(通过我的Xcode项目中的一行代码)。

    提前感谢!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Matthew Seaman    6 年前

    你应该先问问自己为什么要这样做。如果且仅当您有充分的理由明确不希望用户能够在您的应用程序(或特定文本视图)中查找单词定义时,请继续阅读。

    使用终端命令更改设置是个坏主意,因为此手势是一种系统设置,而不是特定于应用程序的设置。不允许干扰应用于除应用程序以外的任何其他应用程序的用户设置。

    正确的方法是在 NSTextView 。假设您已从 NSMenu 与文本视图关联(可以通过重写 textView(:menu:for:at:) ),您可以简单地重写 quickLook(with:) 在的子类中 NSTextView 不要打电话给super,以免3指轻敲无法正常工作。

    例如,可以创建自定义 NSTextView 因此:

    class MyTextView: NSTextView {
    
        override func quickLook(with event: NSEvent) {
            print("preventing quick look")
        }
    
    }
    

    请注意,如果您正在处理 NSTextField 相反,您可以交换字段编辑器(它是 NSTextView ).对此进行了解释 here