如何在Cocoa中实现双指滑动手势来回转?

5 navigation cocoa objective-c magic-mouse swipe-gesture

当您用两只手指在Magic Mouse上滑动(或者使用Magic Trackpad上的三根手指)时,Safari和Finder等几个应用程序会前后移动.

我如何在我的Cocoa应用程序中实现它?有哪些课程?

sbo*_*oth 5

三指滑动是最简单的,因为NSResponder已经为您完成了工作:

- (void)swipeWithEvent:(NSEvent *)event;
Run Code Online (Sandbox Code Playgroud)

如果你想支持两个手指滑动(我不认为技术上可以归类为滑动,而是滚动手势),你将不得不手动处理触摸 - 请参阅http://developer.apple.com/library /mac/#documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html#//apple_ref/doc/uid/10000060i-CH13-SW10

  • 要在触控板上进行两次手指滑动,请查看https://github.com/Kapeli/SwipableWebView. (2认同)

Tim*_*Tim 5

对我来说,两指滑动与触控板一起工作,通过继承 NSView 后代保存要滑动的信息(例如 NSScrollView 实例),然后实现 -(void)scrollWheel:(NSEvent *)event。此方法将在两指滑动时调用,滑动的方向可以从 [event deltaX] 和 [event deltaY] 属性中获取。