objective-c - 如何使 NSView 透明,但保持属于它的对象不变?

标签 objective-c macos cocoa nsview

在我的应用程序中,我有一个 NSView,用作绘图 Canvas ,使用 NSBezierPath 绘制一些原始形状,例如矩形和椭圆形。现在我需要使 Canvas 透明,但我希望我绘制的形状具有与以前相同的不透明度。我很好奇是否可以做到这一点,如果可以的话,怎么做?!

编辑:

抱歉之前的描述不好!

我的最终目标是能够在透明 Canvas 上绘制正常的饱和颜色形状。我所说的透明是指如果可能的话完全清楚。当我绘制形状时,我的 View 一直在重新绘制自身,因此即使在这些条件下,我也希望一切都如上所述。

感谢任何形式的帮助!

最佳答案

要使窗口透明,以便显示其后面的内容,请将窗口的 backgroundColor 设置为 [NSColor clearColor] 并将窗口的 不透明NO

设置 View 的opaque是不必要的,因为默认情况下它已经是NO,并且因为这不能满足您的要求。 View 的 opaque 属性与 Windows 的 opaque 属性的含义不同。

使用 clearColor 填充是不必要的,因为所做的只是删除您之前绘制的内容。如果您之前没有在那里绘制任何内容,那么您正在删除一 block 干净的板。

您的 View 绘制的任何内容(不是 clearColor)仍然可见。

关于objective-c - 如何使 NSView 透明,但保持属于它的对象不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153917/

相关文章:

macos - 撤消/重做菜单项不适用于基于文档的应用程序 OSX 10.7

objective-c - Peek & Pop - Pop 导致 UICollectionView 中的错误单元格

ios - 无法在iOS应用程序中使用AFNetworking

objective-c - 在 Ubuntu 上使用 clang 构建简单的 Objective-C 示例(链接失败)?

python - 在eclipse中,如何读取python内置函数源代码?例如过滤、映射、减少

macos - Mac OS X "El Capitan": cannot read user set Bash environment variables

php - 内容长度转换

objective-c - NSTableView不显示objectValueForTableColumn方法的返回值

iphone - 弯曲位图图像 - 就像在 PS5 中一样。算法?代码?图像处理?

c - Objective-C 字符串,字符串格式化程序