我正在編寫一個針對OS X Lion和Snow Leopard的應用程序。我有一個觀點,我想對滑動事件做出響應。我的理解是,如果在我的自定義視圖中實現該方法,那麼三指輕掃將會調用-[NSResponder swipeWithEvent:]
。我已經看過this問題和相應答案,並試圖以下修改存根實現的奧斯卡德爾本的代碼:- [NSResponder swipeWithEvent:] not called
@implementation TestView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFillUsingOperation(dirtyRect, NSCompositeSourceOver);
}
- (void)swipeWithEvent:(NSEvent *)event {
NSLog(@"Swipe event detected!");
}
- (void)beginGestureWithEvent:(NSEvent *)event {
NSLog(@"Gesture detected!");
}
- (void)endGestureWithEvent:(NSEvent *)event {
NSLog(@"Gesture end detected!");
}
- (void)mouseDown:(NSEvent *)theEvent {
NSLog(@"mouseDown event detected!");
}
@end
這編譯並運行良好,並且視圖呈現預期。 mouseDown:
事件已正確註冊。但是,沒有其他事件被觸發。 begin/endGestureWithEvent:
方法,也不是swipeWithEvent:
方法。這讓我想知道:我是否需要在某處設置項目/應用程序設置以正確接收和/或解釋手勢?先謝謝您的幫助。
作爲一個側面說明,就可以得到'滾動手勢 - [NSResponder類滾輪:]',但我想專門使用三指手勢 – nomothetis