我有一个使用macOS菜单栏中的自定义视图的应用程序。 macOS具有一项功能,菜单栏中的项目将在辅助屏幕上显示为已禁用(我认为将在视图中添加一个alpha值)。
当我从Button中删除自定义视图时,一切正常。但是,当我使用自定义视图时,无论是主监视器还是辅助监视器,该视图始终看起来相同。
即使设置属性“ appearsDisabled”也不会改变视图的外观。
这是我正在使用的代码:
private let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
private var view: HostView?
func applicationDidFinishLaunching(_ aNotification: Notification)
{
self.createMainView()
self.createMenuBarView()
}
fileprivate func createMenuBarView()
{
// Remove all sub views from the view and create new ones.
self.view?.subviews.removeAll()
var width: CGFloat = 0
for device in self.controller.model.devices
{
if let newView = self.createView(for: device.value, x: width)
{
self.view?.addSubview(newView.view)
width += newView.width
}
}
self.view?.frame = NSRect(x: 0, y: 0, width: width, height: MenuBar.height)
self.statusItem.image = nil
self.statusItem.length = width
if let view = self.view
{
// Do I have to set some properties here?
self.statusItem.button?.addSubview(view)
}
}
fileprivate func createMainView()
{
let view = HostView(frame: NSRect(x: 0, y: 0, width: 32.0, height: MenuBar.height))
view.menu = self.menu
self.view = view
}
答案 0 :(得分:0)
问题似乎是我正在将NSView作为子视图添加到NSStatusItem的按钮上。
data1
当我将自定义视图设置为NSStatusItem的view-Property时,该视图在辅助屏幕上显示为灰色(请注意,自macOS 10.14起,该视图已弃用)。