3

我有一个NSWindowwith 2 NSViews(一个NSSplitView和一个 custom NSView)。访问数据以填充这些视图可能需要一些时间。在此期间,我想将这些视图的内容灰显。

我的第一种方法是让黑色三分之一NSView覆盖另外两个,并通过更改其 alpha 值来实现变灰效果。但是,从那以后,我了解到具有兄弟视图的层次结构是未定义的。

这里最好的方法是什么?

  • 缓存NSBitmapImageRep2 个视图,然后将它们替换为第 3 个视图,使用缓存的图像作为背景
  • 分别设置每个视图的 alpha 值(仍然不太清楚如何获得灰色背景的黑色背景)
  • 我没有考虑过的事情
4

2 回答 2

6

我会使用一个子窗口。将其内容视图设置为纯黑色视图(希望在子视图中包含状态和进度信息),并将其 alpha 值设置为所需的淡出,并将其添加为要淡出其内容的窗口的子窗口。

于 2009-11-01T00:57:34.503 回答
2

我会教视图如何在禁用状态下绘制自己,但这里还有其他建议:

如何使单个 NSView 中显示的所有内容变暗?

于 2009-11-01T00:56:32.073 回答