сложность обработки правой кнопкой мыши на иконке меню, вызывающей ноль - PullRequest
0 голосов
/ 13 апреля 2019

Я использую этот код, чтобы открыть меню, когда вы нажимаете на значок меню для приложения,

, когда я щелкаю правой кнопкой мыши по значку моего приложения в меню и затем нажимаю на меню, которое возвращается, как ноль.и сбой моего приложения есть ли более чистый способ обрабатывать левый и правый щелчок моего правого меню?

statusItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.squareLength)
    let menuBarMenuIcon = statusItem?.button; menuBarMenuIcon!.image = NSImage(named: "MenuBarButton"); menuBarMenuIcon!.target = self; menuBarMenuIcon!.action = #selector(displayMenuBarIconMenu); menuBarMenuIcon?.sendAction(on: [.leftMouseUp,.rightMouseUp])


@objc func displayMenuBarIconMenu() {
guard let button = statusItem?.button else { return }
let x = button.frame.origin.x
let y = button.frame.origin.y - 4
let location = button.superview!.convert(NSMakePoint(x, y), to: nil)
let w = button.window!
let event = NSEvent.mouseEvent(with: .leftMouseUp, location: location, modifierFlags: NSEvent.ModifierFlags(rawValue: 0), timestamp: 0, windowNumber: w.windowNumber, context: nil, eventNumber: 0, clickCount: 1, pressure: 0)!

if NSApplication.shared.currentEvent!.description.contains("RMouseUp"){NSMenu.popUpContextMenu(menuBarIconMenu, with: event, for: button)}
if NSApplication.shared.currentEvent!.description.contains("LMouseUp"){NSMenu.popUpContextMenu(menuBarIconMenu, with: event, for: button)}

    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...