我正在开发一款 Mac 截屏应用,希望能够重新实现按下 Cmd-Ctrl-Shift-4 时的操作:交叉线样式的鼠标指针以及矩形选区截图。
我使用了一个自定义无边框 NSWindow 并置于其他所有窗口之上。我禁用了系统鼠标指针,以便绘制自己的鼠标指针和选区矩形。
我的问题在于,一旦我点击并拖动以截取截屏,我的应用程序会被激活(因为点击被我的保护窗口拦截)。
是否有方法可以在我的自定义视图 / 窗口中接收点击事件,并且不使我的应用程序被激活?
我尝试使用带有 NSNonactivatingPanelMask 标志的 NSPanel,但在这种情况下,我遇到了一个鼠标指针的问题:由于我不能隐藏其他应用程序的鼠标指针,因此在其他应用程序处于活动状态时,我无法绘制自己的鼠标指针。。。
我使用了一个自定义无边框 NSWindow 并置于其他所有窗口之上。我禁用了系统鼠标指针,以便绘制自己的鼠标指针和选区矩形。
我的问题在于,一旦我点击并拖动以截取截屏,我的应用程序会被激活(因为点击被我的保护窗口拦截)。
是否有方法可以在我的自定义视图 / 窗口中接收点击事件,并且不使我的应用程序被激活?
我尝试使用带有 NSNonactivatingPanelMask 标志的 NSPanel,但在这种情况下,我遇到了一个鼠标指针的问题:由于我不能隐藏其他应用程序的鼠标指针,因此在其他应用程序处于活动状态时,我无法绘制自己的鼠标指针。。。
ctrl
键将截图复制到剪贴板中...不知道这是否是你想要做的所有事情。否则,链接线程中的建议之一可能是最好的选择(或者是我下面的回答)。 - Brad AllredNSApplicationActivationPolicy.Prohibited
是另一种方法... 当然,这取决于应用程序的需求。 - Milos