NSTextField - 只允许用力触摸编辑,Cocoa

NSTextField - Allow editing only with force-touch, Cocoa

我正在开发一个 OSX 支持强制触摸的应用程序。

默认情况下,如果您将 NSTextField 的行为设置为可编辑,用户可以单击两次或使用强制触摸来开始编辑。

我想允许用户仅通过强制触摸开始编辑。我该如何处理?

子类 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)
    }
}