如何在课堂外更改NSStatusItem

时间:2017-08-12 18:02:34

标签: swift macos nsstatusitem

我在名为StatusMenuController的类中创建了一个NSStatusItem,就像这个

一样
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",但它看起来像这样。screenshot

系统创建另一个NSStatusItem。如何更改在StatusMenuController中创建的那个。

1 个答案:

答案 0 :(得分:0)

OOPer的评论是对的。我找到了一个从Storyboard创建另一个StatusMenuController的对象。我删除了该对象,然后一切正常。