繁体   English   中英

菜单栏图标的菜单的菜单与菜单栏本身保持重叠

[英]menu for menubar icon's menu keeps overlaping the menubar itself

在此处输入图片说明

 menuBarIconMenu.popUp(positioning: menuBarIconMenu.item(at: 0), at: NSPoint(x: 1842, y: 1414), in: nil)

我使用此代码使菜单打开,但是它不会像其他菜单一样位于菜单栏的后面吗?


更新1:

    statusItem =   NSStatusBar.system.statusItem(withLength:NSStatusItem.squareLength)

    menuBarMenuIcon = (statusItem?.button)!; menuBarMenuIcon.image = NSImage(named: "MenuBarButton"); menuBarMenuIcon.action = #selector(menuBarMenuClicked); menuBarMenuIcon.sendAction(on:    [.leftMouseUp,.rightMouseUp])

这就是我分配菜单的方式

更新2:

这项工作statusItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.squareLength)statusItem?.menu = menuBarIconMenu

在我的一个应用程序的先前版本中,我还通过调用弹出功能手动打开了菜单,并遇到了类似的问题。 您是如何分配NSMenu的? 我建议您将NSMenu分配给NSStatusItem的menu属性。 然后,您不必手动添加代码即可打开菜单。 您是否为您的NSStatusItem分配了自定义NSView实例?

private let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)

func applicationDidFinishLaunching(_ aNotification: Notification)
{
    self.statusItem.menu = self.createMenu()
}

private func createMenu() -> NSMenu
{
    // Close
    let menu = NSMenu()
    menu.addItem(NSMenuItem(title: "Quit", action: #selector(self.quit), keyEquivalent: "q"))

    return menu
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM