gpt4 book ai didi

objective-c - 检测四个手指手势(Cocoa)

转载 作者:行者123 更新时间:2023-12-03 17:12:12 24 4
gpt4 key购买 nike

在Cocoa中,我开发了作为代理的应用程序(仅作为上部状态栏上的图标运行)。它可以显示弹出窗口,它基本上是 NSWindow 的子类,以 NSView 作为其内容。我添加到另一个 NSView 子类(代表状态栏上的图标)

    self.settingsPopoverTransiencyMonitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask|NSRightMouseDownMask handler:^(NSEvent *event) {
[selfReference hideSettingsPopover];
}];

因此,当用户单击弹出窗口外部时,它会隐藏。我想在用户用四根手指向上/向下滑动时实现类似的行为(因此当启动 Exposé 或 Mission Control 时)。

我尝试了 NSEvent.h 中提供的许多掩码,但没有一个有帮助。

最佳答案

首先在您的NSView中启用触摸事件:

view.acceptsTouchEvents = YES

在您的 NSView 子类中,覆盖 NSResponder 中声明的触摸事件方法。父类(super class)。如果您想识别 4 指滑动手势,您可能需要 -swipeWithEvent:。由于这将触发具有任意数量手指的滑动事件,因此您只想将其过滤为 4 指手势。方法 -[NSEvent TouchsMatchingPhase:inView:] 将返回一个 NSTouch 对象数组,每个手指对应一个(即数组的数量等于手指的数量)手指)。

总而言之,实现如下所示:

- (void)swipeWithEvent:(NSEvent *)event
{
NSArray *touches = [event touchesMatchingPhase:NSTouchPhaseTouching inView:self];
if (touches.count == 4) {
// Handle event here
}
}

关于objective-c - 检测四个手指手势(Cocoa),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com