我试图找到一个基本上让我发疯的话题的答案。有没有办法像 Apple 的屏幕捕捉实用程序一样捕捉鼠标指针?我正在尝试做的事情需要我绘制一个清晰的窗口,它不会激活我的应用程序,而是覆盖所有内容,包括停靠栏。我见过的唯一一个这样做的软件是使用 command+shift+4 的屏幕截图。
我尝试创建一个非激活的 NSPanel,但它不适用于光标矩形,除非我的应用程序处于活动状态(我不希望它处于活动状态)。NSPanel 的问题还在于,如果我在仪表板中,我无法激活它上面的窗口。
我想做的事情的要求是这样的。• 我的应用程序不得激活(保持任何活动应用程序处于活动状态) • 必须能够更改 NSCursor • 鼠标不会触发停靠隐藏/取消隐藏(或任何其他事件) • 即使在仪表板中也可以工作
我之前尝试过此代码,但其限制与上面列出的相同。
NSScreen * s = [NSScreen mainScreen];
[self.window setStyleMask:NSNonactivatingPanelMask];
[self.window setHasShadow:NO];
[self.window setOpaque:NO];
[self.window setBackgroundColor:[NSColor clearColor]];
[self.window setFrame:s.frame display:NO];
[self.window orderFront:self];
[self.window setLevel:NSMainMenuWindowLevel + 1];
[self.trackingView addCursorRect:self.window.frame cursor:[NSCursor closedHandCursor]];