【问题标题】:Way to get beginGestureWithEvent/endGestureWithEvent if window isn't frontmost如果窗口不是最前面的,则获取 beginGestureWithEvent/endGestureWithEvent 的方法
【发布时间】:2011-04-15 15:46:32
【问题描述】:

有没有办法得到

- (void)beginGestureWithEvent:(NSEvent *)event

- (void)endGestureWithEvent:(NSEvent *)event

即使包含窗口在后台也调用视图?似乎这些调用只有在它们是关键时才会传递到 Windows。

【问题讨论】:

  • 所以我可以在应用级别查看 sendEvent,寻找 NSEventTypeBegin/EndGesture。这解决了我对非键窗口的问题,但前提是应用程序位于最前面。仍然希望解决应用不活跃的情况。

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


【解决方案1】:

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

您可以安装一个事件水龙头,但这些事件看起来与 NS 等效项不完全相同。但是,如果您真的想深入研究,所有数据都在那里。

请提交一份雷达,询问此内容以及为何有用。

【讨论】:

    【解决方案2】:

    但这里有一个解决方法:

    使用选项NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways 将跟踪区域添加到您的视图边界

    ...并通过mouseEntered:激活您的应用程序

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-11
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 2019-06-04
      相关资源
      最近更新 更多