Сначала вы должны спросить себя, почему вы хотите это сделать. Если и только если есть веская причина, по которой вы определенно не хотите, чтобы пользователи могли просматривать определения слов в вашем приложении (или конкретном текстовом представлении), читайте дальше.
Изменение настроек с помощью команд терминала - плохая идея, поскольку этот жест является системной настройкой, а не специфической для вашего приложения. Было бы неприемлемо возиться с пользовательскими настройками, которые применяются к чему-либо, кроме вашего приложения.
Правильный способ сделать это будет в контексте 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
s, вы можете заменить редактор полей (это NSTextView
). Это объясняется здесь .