我有一个带有 2 个 NSViews
(一个 NSSplitView
和一个自定义 NSView
)的 NSWindow
。访问数据以填充这些 View 可能需要一些时间。在此期间,我想将这些 View 的内容置灰。
我的第一种方法是使用黑色的第三个 NSView
覆盖其他两个,并通过更改其 alpha 值来实现变灰效果。但是我已经了解到具有兄弟 View 的层次结构是未定义的。
这里最好的方法是什么?
- 缓存 2 个 View 的
NSBitmapImageRep
,然后将它们替换为第 3 个 View ,使用缓存的图像作为背景 - 分别为每个 View 设置 alpha 值(仍然不太确定如何获得灰色效果的黑色背景)
- 我没有考虑过的事情
最佳答案
我会使用子窗口。将其内容 View 设置为纯黑色 View (希望在 subview 中包含状态和进度信息),并将其 alpha 值设置为所需的淡出,并将其添加为要淡出其内容的窗口的子窗口。
关于objective-c - 使 NSWindow 的内容变灰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656049/