【问题标题】:NSWindow with custom shadow带有自定义阴影的 NSWindow
【发布时间】:2011-02-01 11:10:37
【问题描述】:

我想在 NSWindow-Object 上绘制自定义阴影。

有没有办法通过将自己的 NSShadow-Object 传递给 NSWindow 来做到这一点?或者一个(私有)方法,我可以把我自己的绘图代码放在哪里?

谢谢,

【问题讨论】:

    标签: objective-c macos nswindow


    【解决方案1】:

    不要。你不应该改变窗口的外观。只有 Apple 允许更改 UI 的外观。普通应用应使用标准应用。

    也就是说,有办法,如果你真的坚持这样做。不幸的是,您不能只附加NSShadow。另外,据我了解,没有绘制阴影的私有方法。这是由 Window Server 完成的,而不是由应用程序完成的。

    但是你可以要求窗口服务器不要添加阴影。您是否注意到在 Interface Builder 中,有一个选项可以抑制给定窗口的阴影?这对应于NSWindow 的属性hasShadow

    压制阴影后,你只需要自己绘制一切。 ADC 上提供了一个很好的自定义窗口绘制示例代码,请看一下。

    【讨论】:

    • 查看了引用的示例。虽然这是绘制透明无边框窗口的一个很好的例子,但它并没有说明手动绘制窗口的阴影——它只是使用基于透明无边框窗口内容的默认阴影(在本例中为圆形/五边形图片)。一个相关的问题在这里:stackoverflow.com/questions/8948228/…
    • @Yuji,我注意到默认的 NSWindow 阴影在聚焦和不聚焦时有两种不同的阴影。基本上在对焦时会有更多的阴影。如何使用 ADC 获得该行为?
    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 2011-09-04
    • 2014-10-24
    • 1970-01-01
    相关资源
    最近更新 更多