从ViewController访问AppDelegate中的对象

时间:2019-05-27 14:42:57

标签: swift macos viewcontroller appdelegate

AppDelegate.swift 中,我声明了一个NSStatusBar对象,如下所示:

var statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.title = "chess"
statusItem.button?.target = self
statusItem.button?.action = #selector(showSettings)

并且工作正常,但是我想在 viewController.swift

中更改标题

我尝试了此操作(在视图控制器中):

var appd = AppDelegate()
appd.statusItem.button?.title = "ELO: \(parsing2.chess_daily.last.rating)"

但是标题没有改变...我该怎么做?

1 个答案:

答案 0 :(得分:1)

NSApplication获取委托对象,默认初始化程序AppDelegate()创建一个新的无关实例。

let appDelegate = NSApp.delegate as! AppDelegate
appDelegate.statusItem.button?.title = "ELO: \(parsing2.chess_daily.last.rating)"