[関連]
10.6 から追加されたトラックパッドを使った回転操作のイベントを確認してみた。
回転 (rotate)
2本指をトラックパッドへ置いた後、指を左右に回転させる。システム環境設定の「トラックパッド」で有効無効の設定が可能。iPhone ではあまり使われていない(というか見た覚えがない)。
ここで無効になっていると後述する回転時のイベントが受け取れない。
サンプル
初期画面。
トラックパッドで2本指を右に回すと画像が右に回転する。
実装
イベントをハンドリングしたいビューの -[NSResponder rotateWithEvent:] をオーバライドするだけで良い。
- (void)rotateWithEvent:(NSEvent *)event { [selfsetBoundsRotation:([selfboundsRotation] + [event rotation]*2)]; [selfsetNeedsDisplay:YES]; }以下は渡ってくる NSEvent のログ例。
NSEvent: type=Rotate loc=(95,224) time=148745.0 flags=0x100 win=0x10061cd10 winNum=16416 ctxt=0x0 rotation=-0.223812 // 右回転 NSEvent: type=Rotate loc=(265,249) time=148817.8 flags=0x100 win=0x10061cd10 winNum=16416 ctxt=0x0 rotation=0.355826 // 左回転
ソースコード
GitHub からどうぞ。
TrackpadSample at 2011-01-30 from xcatsan/MacOSX-Sample-Code - GitHub
参考情報
Cocoa Event-Handling Guide: Handling Trackpad Events
"Handling Gesture Events" に rotationWithEvent: の説明あり。
Responses
Leave a Response