如何删除Cocoa添加到透明纸张的"模糊"效果?

e.J*_*mes 2 cocoa transparency objective-c nswindow cocoa-sheet

默认情况下,Cocoa在应用于窗口时会向透明和半透明模态图纸添加背景模糊效果.我想禁用模糊效果.我该怎么做呢?

我创建了一个自定义工作表(NSWindow的子类,具有透明背景和一些控件).我可以使用标准beginSheet方法显示它,如下所示:

[NSApp beginSheet:myCustomSheet
   modalForWindow:mainWindow
    modalDelegate:self
   didEndSelector:...];
Run Code Online (Sandbox Code Playgroud)

表单显示正常,但它背后的一切都很模糊.

注1:我正在为触摸屏/自助服务终端类型的应用程序编写完全自定义的用户界面,因此没有适用的常用Apple用户界面指南.

注2:确实想看看表格下面的内容.正如SirRatty指出的那样,可以通过填充背景来阻挡模糊部分.在我的情况下,我希望通过背景显示,只是没有出现模糊.

Wev*_*vah 6

有一个私有API调用,可用于在窗口的背景上设置CI过滤器:

http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg16280.html

还有一个CGSRemoveWindowFilter:

extern CGError CGSRemoveWindowFilter(CGSConnectionID cid, CGSWindowID wid, CGSWindowFilterRef filter);

请注意,通常的私有API警告适用(可能会消失或将来更改,等等).