目标 c - 如何在自定义 NSView 上用 3 根手指捕捉 1 次点击 (NSEvent)



我必须按照代码在我的自定义NSView上捕获mouseDown,但我认为这只捕获了多少次点击(使用clickCount),而不是使用了多少手指点击:

- (void)updateTrackingAreas{
    if(trackingArea != nil) {
        [self removeTrackingArea:trackingArea];
    }
    int opts = (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways);
    trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds]
                                                 options:opts
                                                   owner:self
                                                userInfo:nil];
    [self addTrackingArea:trackingArea];
}
- (void)mouseDown:(NSEvent *)theEvent{
    NSLog(@"%li",theEvent.clickCount);
    if ([theEvent clickCount] == 3){
        NSLog(@"3");
    }else{
        NSLog(@"normal");
    }
}

关于如何在我的自定义 NSView 上用 3 根手指捕捉 1 次点击的任何想法?我想重现类似 Finder.app 选项的内容,您可以在其中用 3 根手指点击文件并显示 QuickLook 面板。
谢谢!

尝试在mouseUp:方法中执行此操作(而不是mouseDown:)。此外,您不必设置跟踪区域来接收鼠标向上:或鼠标向下:事件。

点击事件

///

/

"如果您在NSView中的点击速度足够快,您将从方法"[theEvent clickCount]"中获得事件"点击计数"。

尝试在鼠标向下记录点击计数

NSLog(@"%d",[theEvent clickCount]);试着快一点点点击。

//

/

触摸事件

///

/

在 OS X>= 10.6 中,您可以尝试覆盖这些触摸事件手势

  • (void)touchesBeganWithEvent:(NSEvent *)event;
  • (void)touchesMovedWithEvent:(NSEvent *)event;
  • (void)touchesEndedWithEvent:(NSEvent *)event;
  • (void)touchesCancelWithEvent:(NSEvent *)event;

&

[self setAcceptsTouchEvents:YES]; in init

//

/

希望对!!有所帮助

相关内容

  • 没有找到相关文章

最新更新