【问题标题】:NSTextField - Allow editing only with force-touch, CocoaNSTextField - 只允许使用强制触摸进行编辑,Cocoa
【发布时间】:2016-10-04 12:24:51
【问题描述】:

我正在开发一个支持 Force touch 的 OSX 应用。

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

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

【问题讨论】:

    标签: swift macos cocoa 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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多