【发布时间】:2016-10-04 12:24:51
【问题描述】:
我正在开发一个支持 Force touch 的 OSX 应用。
默认情况下,如果您将 NSTextField 的行为设置为可编辑,用户可以单击两次或使用强制触摸开始编辑。
我想允许用户仅通过强制触摸开始编辑。我该如何处理?
【问题讨论】:
标签: swift macos cocoa nstextfield force-touch
我正在开发一个支持 Force touch 的 OSX 应用。
默认情况下,如果您将 NSTextField 的行为设置为可编辑,用户可以单击两次或使用强制触摸开始编辑。
我想允许用户仅通过强制触摸开始编辑。我该如何处理?
【问题讨论】:
标签: swift macos cocoa nstextfield force-touch
继承 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)
}
}
【讨论】: