像Safari和Finder这样的应用程序会在您使用魔术鼠标(或魔术触控板上的三个手指)用两个手指轻扫时返回和前进。
我该如何在我的Cocoa应用程序中实现这一功能?有哪些类可用?
像Safari和Finder这样的应用程序会在您使用魔术鼠标(或魔术触控板上的三个手指)用两个手指轻扫时返回和前进。
我该如何在我的Cocoa应用程序中实现这一功能?有哪些类可用?
三指滑动最容易,因为NSResponder已经为你完成了这项工作:
- (void)swipeWithEvent:(NSEvent *)event;
如果您想支持两个手指的滑动(我认为从技术上讲不能被归类为“滑动”,而应该是滚动手势),您需要手动处理触摸操作 - 参见http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html#//apple_ref/doc/uid/10000060i-CH13-SW10
对于我来说,通过子类化NSView后,使用Trackpad进行双指滑动可以实现。需要滑动的信息(例如NSScrollView实例)应该保存在这个NSView的子类中,并实现-(void)scrollWheel:(NSEvent *)event方法。这个方法将会被用于双指滑动,滑动的方向可以从[event deltaX]和[event deltaY]属性中获取。