【问题标题】:Transparent NSWindow but with standard border and shadow [duplicate]透明 NSWindow 但具有标准边框和阴影 [重复]
【发布时间】:2012-03-01 15:33:05
【问题描述】:

我希望有一个或多或少标准的带有工具栏的 NSWindow,但我希望内容视图是透明的,以便我可以看穿它。同时我想保留窗户的浅灰色轮廓和阴影。但我想避免从内容视图区域内的工具栏获得的“内部”阴影。

到目前为止,我尝试的只是将窗口背景颜色设置为半透明颜色,并将不透明设置为 NO。问题是窗口边框随着背景本身的 alpha 逐渐消失,而且我在背景上的透明度越高,工具栏的阴影就越多地出现在内容视图中。

通常,窗口阴影和边框会根据内容视图的透明度而变化,我完全理解。但我想要一种行为,它保持边框和阴影就像它是一个完全不透明的窗口一样,然后我希望内容视图区域是透明的。

我不确定我需要在概念上做什么才能使其发挥作用。也许我必须自己绘制窗口边框,也许不是。也许我需要自己画阴影,也许不需要。

有没有人知道如何构建这个?我不需要确切的代码细节,而是需要自定义哪些部分..

感谢您的任何意见!

【问题讨论】:

  • 你有没有想过这个问题?我遇到了同样的问题。

标签: objective-c macos cocoa transparent nswindow


【解决方案1】:

我不知道这对你是否有任何价值,但请尝试:

[aWindow setOpaque:NO];
[aWindow setBackgroundColor:[NSColor clearColor]];

【讨论】:

    【解决方案2】:

    继承 NSView 类,重写 drawRect:(NSRect)dirtyRect 方法并将视图颜色设置为 clearcolor,现在将内容视图的类设置为 NSView 的子类。

    【讨论】:

      猜你喜欢
      • 2011-12-25
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多