Как изменить NSStatusItem вне класса
Я создаю NSStatusItem в классе с именем StatusMenuController, как это
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"
}
Я могу легко изменить название в этом классе. Это изменится, как я и ожидал.
Я ссылаюсь на этот класс в AppDelegate
let statusMenu = StatusMenuController()
Добавить изменить его в другой класс
statusMenu.statusItem.title = "24:31"
Я ожидаю, что текст 25:00 изменится на "24:31", но это выглядит так. Скриншот
Система создает еще один NSStatusItem. Как я могу изменить тот, который создан в StatusMenuController.
1 ответ
Комментарий ООП верен. Я нашел объект, который создает другой StatusMenuController из раскадровки. Я удаляю объект, тогда все ок.