Force touch をサポートする OSX アプリを開発しています。
デフォルトでは、NSTextField の動作を編集可能に設定すると、ユーザーは 2 回クリックするか、強制的にタッチして編集を開始できます。
ユーザーが強制タッチのみで編集を開始できるようにしたい。どうすればこれを処理できますか?
Force touch をサポートする OSX アプリを開発しています。
デフォルトでは、NSTextField の動作を編集可能に設定すると、ユーザーは 2 回クリックするか、強制的にタッチして編集を開始できます。
ユーザーが強制タッチのみで編集を開始できるようにしたい。どうすればこれを処理できますか?
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)
}
}