Cocoa NSStatusItem图像 - 不透明背景

时间:2017-09-14 20:58:20

标签: objective-c macos cocoa macos-sierra

我正在创建一个小菜单栏应用程序,在状态栏中显示当前的iTunes歌曲。它的效果很好,除了在黑暗模式下,专辑封面的黑色区域显示与(透明)菜单栏背景相同的颜色:

transparent-status-item-bg

有没有办法让这个变成不透明的黑色背景呢?

在白色背景上,它使白色成为白色透明背景,但黑色是一个漂亮的深黑色(整体而言我发现这不那么烦人):

transparent-status-item-bg-white

目前,我只是使用[statusItem setImage:artworkImage]来设置图片。

1 个答案:

答案 0 :(得分:1)

出于某种原因,添加透明的NSView作为状态项按钮的子视图非常有效:

let subview = NSView.init(frame: statusItem!.button!.frame)
statusItem?.button?.addSubview(subview)

现在,我仍然不知道为什么可行。

编辑:这适用于OS X v10.13 High Sierra,但不适用于v10.14 Mojave 。它又恢复了透明度。