在开始之前,我应该说一声,我知道这看起来有点不切实际,但是我认为还是值得一试的。
我现在正在开发一个 Mac 状态栏应用程序。它有一个 NSStatusItem 在菜单栏中,单击后会显示一个自定义窗口,类似于 iPad 上的弹出式窗口或者像 Mac 上的 Fantastical 应用程序。然后我通过在状态项菜单中插入一个 nsmenu 项来测试它。该视图设置了窗口背景颜色为透明色。然而,正如您在下面的图片中所见,这仍然不太完美。
还有两个问题:
1. 在该项上方和下方仍然存在一条小白线。 2. 透明区域并不完全透明,就像它上面有一个模糊过滤器一样。
除此之外,它的工作效果非常好。我只是不知道是否有其他人尝试过类似的事情,并想知道如何解决这两个问题,这似乎是唯一阻止它工作的东西。
如果没有办法解决这个问题,我可能不得不使用自定义视图来获取屏幕上的坐标,以便在 NSStatusItem 下方定位我的窗口。
我现在正在开发一个 Mac 状态栏应用程序。它有一个 NSStatusItem 在菜单栏中,单击后会显示一个自定义窗口,类似于 iPad 上的弹出式窗口或者像 Mac 上的 Fantastical 应用程序。然后我通过在状态项菜单中插入一个 nsmenu 项来测试它。该视图设置了窗口背景颜色为透明色。然而,正如您在下面的图片中所见,这仍然不太完美。
还有两个问题:
1. 在该项上方和下方仍然存在一条小白线。 2. 透明区域并不完全透明,就像它上面有一个模糊过滤器一样。
除此之外,它的工作效果非常好。我只是不知道是否有其他人尝试过类似的事情,并想知道如何解决这两个问题,这似乎是唯一阻止它工作的东西。
如果没有办法解决这个问题,我可能不得不使用自定义视图来获取屏幕上的坐标,以便在 NSStatusItem 下方定位我的窗口。
NSMenu
会对其项目的背景应用模糊滤镜,无论绘制了什么,但我对于你是如何首先到达这里感兴趣。即使我使用一个透明视图并将其放入NSMenuItem
中,我仍然会得到完全白色的背景。特殊代码? - Itai Ferber-awakeFromNib
中的[[[self.menuItem view] window] setBackgroundColor:[NSColor clearColor]]
似乎没有任何效果。示例:http://cl.ly/3k1A02113g2T2j273H2N - Itai Ferber