如何让NSWindow在打开后立即接受mouseMove事件?

发布于 2024-12-03 18:47:09 字数 444 浏览 1 评论 0原文

我正在使用可可编写一个应用程序,它在某些时候(令人惊讶)会打开窗口。
该窗口中有一个“悬停”功能,为此我需要接受 mouseMoved 事件。我设法使用

[[newView window] setAcceptsMouseMovedEvents:YES];

调用激活此功能,但是,它只有在我触摸打开的窗口后才开始工作,实际上以这种方式激活它。我希望它能够立即运行,而无需单击它。

- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent 

似乎不起作用,因为只有 mouseDown 或 mouseDragged 事件激活它。显然 mouseMoved 事件没有。

换句话说,mouseMoved 事件仅在 mouseDown 或 mouseDragged 事件被调用后才开始工作。

I am writing an application using cocoa which, in some point (surprise), opens window.
There is a "Hover" functionality in this window, and for that I need to accept mouseMoved events. I managed to activate this functionality using

[[newView window] setAcceptsMouseMovedEvents:YES];

call, however, it only starting to work after I touch the opened window, actually activating it this way. I am interested for it to work right away, without clicking on it.

- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent 

does not seem to be working since only mouseDown or mouseDragged events activate it. Apparently mouseMoved event does not.

In other words, mouseMoved event only start to work after mouseDown or mouseDragged event has been called.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜巴黎 2024-12-10 18:47:09

您是否使用 NSTrackingArea 来处理这个?您是否传入了 NSTrackingActiveAlways 选项?

Are you using an NSTrackingArea to handle this? Have you passed in the NSTrackingActiveAlways option?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文