erstelle ich eine NSStatusItem in einer Klasse mit dem Namen StatusMenuController wie dieseWie NSStatusItem ändert
class StatusMenuController: NSObject {
let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
override func awakeFromNib() {
let icon = NSImage(named: "MenuBar")
icon?.isTemplate = true // best for dark mode
if let button = statusItem.button {
button.image = icon
button.action = #selector(StatusMenuController.showPomoNow)
button.sendAction(on: [.leftMouseUp, .rightMouseUp])
button.target = self
}
statusItem.title = "25:00"
}
ich den Titel leicht in dieser Klasse ändern kann. Es wird sich ändern, wie ich es erwartet habe.
Referenz mir diese Klasse in AppDelegate
let statusMenu = StatusMenuController()
hinzufügen Änderung in anderer Klasse
statusMenu.statusItem.title = "24:31"
Ich erwarte, dass der Text 25:00 wird auf "24:31" ändern, aber es sieht aus wie Dies. screenshot
System erstellen ein anderes NSStatusItem. Wie kann ich das ändern, was in StatusMenuController erstellt wurde?
Wie bekomme ich den Verweis auf 'statusMenu' in der * anderen Klasse *? – vadian
Wenn Sie einen anderen 'StatusMenuController' erstellen, erstellen _System ein anderes NSStatusItem_. Erstellen Sie nicht zwei 'StatusMenuController', einen aus der Nib, einen mit Ihrem Code' StatusMenuController() '? – OOPer
Es gibt nur ein Objekt. Aber jemand erwähnt mich, es könnte ein Timer-Problem sein. 'StatusMenu.statusItem.title =" 24:31 "' wird von einem Timer aufgerufen. –