fix menubar items not being active by adding the correct target

This commit is contained in:
Felix Förtsch
2018-10-11 16:16:05 +02:00
parent aac60a37ab
commit 5b1fe4801d
2 changed files with 14 additions and 17 deletions

View File

@@ -8,19 +8,12 @@
import Cocoa
class StatusBarController: NSObject, NSUserInterfaceValidations {
var statusBar = NSMenu()
class StatusBarController: NSObject {
let statusBar = NSMenu()
let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
let matchesAPI = MatchesAPI()
var matches = [Match]()
func validateUserInterfaceItem(_ item: NSValidatedUserInterfaceItem) -> Bool {
if let menuitem = item as? NSMenuItem {
menuitem.state = .on
}
return true
}
override func awakeFromNib() {
// Set the icon of the statusbar item and put it into the statusbar
let icon = NSImage(named: "statusBarIcon")
@@ -31,17 +24,21 @@ class StatusBarController: NSObject, NSUserInterfaceValidations {
}
@objc func generateMenu() {
statusBar.addItem(withTitle: "Refresh", action: #selector(generateMenu), keyEquivalent: "")
statusBar.addItem(NSMenuItem.separator())
statusBar.removeAllItems()
var menu = [NSMenuItem]()
menu.append(NSMenuItem.init(title: "Refresh", action: #selector(generateMenu), keyEquivalent: ""))
menu.append(NSMenuItem.separator())
if let matches = matchesAPI.fetchMatches(for: "dota2") {
for match in matches {
let myItem = NSMenuItem(title: match.league, action: nil, keyEquivalent: "")
statusBar.addItem(myItem)
menu.append(NSMenuItem(title: match.league, action: nil, keyEquivalent: ""))
}
statusBar.addItem(NSMenuItem.separator())
statusBar.addItem(withTitle: "Quit", action: #selector(self.quitClicked), keyEquivalent: "")
}
menu.append(NSMenuItem.separator())
menu.append(NSMenuItem.init(title: "Quit", action: #selector(quitClicked), keyEquivalent: ""))
for item in menu {
item.target = self
statusBar.addItem(item)
}
}