Как реализовать жест смахивания двумя пальцами в Какао, чтобы двигаться вперед и назад?
Некоторые приложения, такие как Safari и Finder, перемещаются назад и вперед, когда вы проводите двумя пальцами по Magic Mouse (или тремя пальцами по Magic Trackpad).
Как бы я реализовал это в моем приложении Какао? Какие классы доступны?
2 ответа
Пролистывание тремя пальцами является самым легким, потому что 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, содержащего информацию, которую нужно провести (например, экземпляр NSScrollView), а затем реализовать событие -(void)scrollWheel:(NSEvent *). Этот метод будет вызываться для пролистывания двумя пальцами, направление пролистывания можно узнать из свойств [event deltaX] и [event deltaY].