【问题标题】:Cocoa NSStatusItem image – opaque backgroundCocoa NSStatusItem 图像 – 不透明背景
【发布时间】:2018-09-26 07:25:50
【问题描述】:

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

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


在白色背景上,它使白色成为白色透明背景,但黑色是一种很好的深黑色(总的来说我觉得这不那么烦人):

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

【问题讨论】:

  • 使用 NSAppearance。
  • 在什么,状态栏?有趣——那会做什么?
  • NSAppearance 确实在状态项内的图像视图上工作得非常好。谢谢,@ElTomato。 (现在我只需要弄清楚如何获得点击操作!)
  • 显然它不适用于多个屏幕。

标签: objective-c macos cocoa macos-sierra


【解决方案1】:

由于某种原因,添加一个透明的 NSView 作为状态项按钮的子视图效果很好:

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

现在,我仍然不知道为什么它会起作用。

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

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2011-11-10
    • 2016-09-06
    • 2011-10-16
    • 2016-12-08
    • 1970-01-01
    • 2012-05-26
    • 2023-04-06
    相关资源
    最近更新 更多