簡體   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