NSTextField - разрешить редактирование только принудительным касанием, какао

Я занимаюсь разработкой приложения для OSX с поддержкой Force touch.

По умолчанию, если вы устанавливаете поведение NSTextField редактируемым, пользователь может щелкнуть два раза или использовать принудительное касание, чтобы начать редактирование.

Я хочу, чтобы пользователь мог начать редактирование только с помощью Force touch. Как я могу справиться с этим?

1 ответ

Решение

Подкласс NSTextField и переопределение pressureChange(with:), Затем проверьте event.stage для уровня давления (или event.pressure для точного значения). Если event.stage 2Сила прикосновения.

@available(macOS 10.10.3, *)
override func pressureChange(with event: NSEvent) {

    if event.stage == 2, !self.isEditable {
        self.isEditable = true
        self.selectText(self)
    }
}
Другие вопросы по тегам