How to hide the disclosure indicator in macOS MenuBar app

65 Views Asked by At

I have a macOS SwiftUI menu bar app. I'm trying to figure out how to get rid of this disclosure triangle. The code for the popover is below.

enter image description here

private func setupStatusBarItem() {
    statusBarItem = NSStatusBar.system.statusItem(withLength: CGFloat(NSStatusItem.variableLength))
    configureStatusBarButton()
}

private func configureStatusBarButton() {
    if let button = statusBarItem.button {
        button.image = NSImage(named: "icon")
        button.action = #selector(togglePopover(_:))
    }
}

@objc func togglePopover(_ sender: AnyObject?) {
    if let button = statusBarItem.button {
        if popover.isShown {
            popover.performClose(sender)
        } else {
            popover.show(relativeTo: button.bounds, of: button, preferredEdge: NSRectEdge.minY)
        }
    }
}

private func setupPopover() {
    let contentView = ContentView(viewModel: viewModel, appDelegate: self)
    popover = createPopover(with: contentView)
}

private func createPopover(with contentView: ContentView) -> NSPopover {
    let popover = NSPopover()
    popover.contentSize = NSSize(width: 300, height: 250)
    popover.behavior = .transient
    popover.contentViewController = NSHostingController(rootView: contentView)
    return popover
}
0

There are 0 best solutions below