如果窗口不是最前面的,那么获取beginGestureWithEvent / endGestureWithEvent的方法

时间:2011-04-15 15:46:33

标签: objective-c cocoa nsview gesture-recognition appkit

有没有办法获得

- (void)beginGestureWithEvent:(NSEvent *)event

- (void)endGestureWithEvent:(NSEvent *)event
即使包含窗口在后台,

也会调用视图?看来这些调用只有在关键时才会传递给Windows。

2 个答案:

答案 0 :(得分:2)

一般没有。在Leopard和SnowLeopard中,手势仅用于前景窗口。正如您所发现的,窗口服务器甚至不会向后台应用程序发送手势事件。

您可以安装事件点按,但这些事件并不完全符合NS等效事项。但是,如果您真的想深入研究,那么所有数据都在那里。

请提交雷达询问这个以及为什么这会有用。

答案 1 :(得分:0)

但这是一个解决方法:

使用选项NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways

为您的视图边界添加跟踪区域

...并在mouseEntered:

上激活您的申请

这是非标准的,但它会起作用。