如何在Mac OS X应用程序中轻扫警报/弹出窗口

时间:2013-03-25 00:05:36

标签: objective-c macos gesture

如何在发生滑动或捏合时发生的Mac OS X应用程序中触发警报。 警报将说明滑动的方向,如果是捏,那么是否是捏或捏?

1 个答案:

答案 0 :(得分:2)

关于handling trackpad events的Apple文档内容非常丰富。您需要查看swipeWithEvent:(NSEvent *)event方法和magnifyWithEvent:(NSEvent *)event方法。他们给出了您可以使用这些方法以及如何实施的明确示例 他们。我很快就做到了,所以这段代码还没有经过测试。但你需要做这样的事情。我建议你阅读整篇文章,然后创建自己的代码。

- (void)swipeWithEvent:(NSEvent *)event {
    CGFloat x = [event deltaX];
    CGFloat y = [event deltaY];

    NSString *msg = @"";

    if (x != 0) {
        msg = (x > 0) ? @"Left Swipe" : @"Right Swipe";
    }
    if (y != 0) {
        msg = (y > 0)  ? @"Up Swipe" : @"Down Swipe";
    }

    [self displayWithMessage:msg];
}

- (void)magnifyWithEvent:(NSEvent *)event {
    NSString *msg = @"";
    if([event magnification] > 0) {
        msg = @"Pinch In";
    }
    else if ([event magnification] < 0) {
        msg = @"Pinch Out";
    }

    [self displayWithMessage:msg];

}
-(void) displayWithMessage:(NSString *)message {
    NSAlert *alert = [[NSAlert alloc] init];
    [alert setAlertStyle:NSInformationalAlertStyle];
    [alert setMessageText:@"Gesture Notification"];
    [alert setInformativeText:message];
    [alert runModal];
}