MacBook Proに長らく搭載されていて革新的でありながらイマイチ活用されていない機能といえばForce Touchトラックパッド。
実はTouchdownでも地味に対応しています。
ファイルをウィンドウにドラッグするとフォーカス枠が表示されますが、その際に指先にフィードバックが来るようにしています。
触覚フィードバックだけでなく、感圧を生かしたアプリも作ってみたいですね。
MacBook Proのための機能 その1
Touchdownを作ろうと思った最大のモチベーションは「MacBook Proをもっと活用したい」だったので、最初に注目したのはいうまでもなくTouch Bar。
まずはTouch Barに何か表示してみるところから始めて、プリセットの切り替えという無難な機能に落ち着きました。
しかし、ちょっと物足りないので、Touch Barジェスチャーにも対応し、ダブルタップでプリセットの選択と実行をまとめてできるようにしてみました。
なんでも表示できるのでもっと派手な感じにもしたかったのですが、Appleのガイドラインに従う限り、あまり目立つものは実装できないのが残念です。
まずはTouch Barに何か表示してみるところから始めて、プリセットの切り替えという無難な機能に落ち着きました。
しかし、ちょっと物足りないので、Touch Barジェスチャーにも対応し、ダブルタップでプリセットの選択と実行をまとめてできるようにしてみました。
なんでも表示できるのでもっと派手な感じにもしたかったのですが、Appleのガイドラインに従う限り、あまり目立つものは実装できないのが残念です。
Touch Barでダブルタップ検知
TouchdownではTouch Barの設定(NSSegmentedControl)をダブルタップで実行する機能を実装しています。
やり方は意外と簡単。
NSClickGestureRecognizerで検知したいジェスチャーを指定し、任意のControlに設定するだけです。
let gesture = NSClickGestureRecognizer() // NSClickGestureRecognizerのインスタンスを作成
gesture.target = self // 通知を受けるオブジェクトを設定
gesture.numberOfTouchesRequired = 1 // 検知する指の本数
gesture.numberOfClicksRequired = 2 // 検知するタップ回数
gesture.allowedTouchTypes = .direct // 指によるダイレクトタッチを検知
gesture.action = #selector(deferConvertFiles(_:)) // 通知を受けたときに実行するセレクタ
segmentedControl.addGestureRecognizer(gesture) // Controlにジェスチャーを設定
シンプルで強力な仕組みですね。
やり方は意外と簡単。
NSClickGestureRecognizerで検知したいジェスチャーを指定し、任意のControlに設定するだけです。
let gesture = NSClickGestureRecognizer() // NSClickGestureRecognizerのインスタンスを作成
gesture.target = self // 通知を受けるオブジェクトを設定
gesture.numberOfTouchesRequired = 1 // 検知する指の本数
gesture.numberOfClicksRequired = 2 // 検知するタップ回数
gesture.allowedTouchTypes = .direct // 指によるダイレクトタッチを検知
gesture.action = #selector(deferConvertFiles(_:)) // 通知を受けたときに実行するセレクタ
segmentedControl.addGestureRecognizer(gesture) // Controlにジェスチャーを設定
シンプルで強力な仕組みですね。
登録:
投稿 (Atom)
Touchdown 1.3公開!
Touchdown 1.3を公開しました。 ダウンロードは こちら から。 Ver.1.3の変更点は以下の通りです。 新機能 macOS Mojave 10.13以降に対応 ダークモードに対応 ぜひお試しください。
-
Touchdownでは複数の設定を保存して切り替えられるようにするため、NSTableViewをUIとして使います。 基本的なとこだけど、何かと分かりにくいCocoa Binding。 iOSでは使えないらしく情報も少なめなので、簡単にまとめておきます。 S...
-
TouchdownをSwift 4に変換した際に、フレームワーク側の変更に伴うコードの置換が発生していました。 ファイルのドラッグ&ドロップに関する部分ではドラッグ受付登録が、 register(forDraggedTypes: [NSFilenamesPboard...
-
macOS High SierraになりSwiftも4にバージョンアップ。 TouchdownもSwift 3からSwift 4に移行します。 基本的にはXcodeの移行ツールに従うだけで、途中で聞かれる Minimize Inference Match Swift...