Cocoa NSWindow,如何不成为屏幕截图的一部分?

Cocoa NSWindow,如何不成为屏幕截图的一部分?,cocoa,xcode,macos,Cocoa,Xcode,Macos,My Cocoa应用程序在屏幕上显示一个透明窗口,但当用户尝试使用Mac OS X内置的屏幕捕获键(带有选择完整窗口的选项)(Command-Shift-4,然后是空格键)进行屏幕截图时,我的窗口将作为可能捕获的窗口的一部分高亮显示 我如何告诉我的窗口或应用程序不允许此操作?“我的窗口”已拒绝通过-canBecomeKeyWindow和-canBecomeMainWindow作为主窗口或键窗口,这两个窗口都返回“否”,但这种情况仍然存在 该窗口也位于NSModalPanelWindowLevel

My Cocoa应用程序在屏幕上显示一个透明窗口,但当用户尝试使用Mac OS X内置的屏幕捕获键(带有选择完整窗口的选项)(Command-Shift-4,然后是空格键)进行屏幕截图时,我的窗口将作为可能捕获的窗口的一部分高亮显示

我如何告诉我的窗口或应用程序不允许此操作?“我的窗口”已拒绝通过
-canBecomeKeyWindow
-canBecomeMainWindow
作为主窗口或键窗口,这两个窗口都返回“否”,但这种情况仍然存在


该窗口也位于
NSModalPanelWindowLevel
NSScreenSaverWindowLevel
做同样的事情。

请注意,每个窗口都有资格获得屏幕截图,甚至桌面、基座和菜单栏都是特殊窗口。您甚至可以拍摄Exposéoverlay窗口本身的屏幕截图。这让我相信没有办法做到这一点


我想您可以钩住Command+Shift+4键事件并隐藏窗口,但该键组合是用户可定义的,因此它可能会更改。

是的,这就是我的想法。我能做的不多似乎。。。谢谢你的回答!有一次,OpenGL应用程序不能以这种方式截图。我不知道这是否改变了。