如何从另一个文件更新 NSStausItem?
How to update a NSStausItem from another file?
我想在用户点击我的设置视图中的按钮时更新状态栏中 NSStausItem 的 button.title 属性。但是,NSStatusItem 目前没有改变。
AppDelegate:
let statusItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.variableLength)
func applicationDidFinishLaunching(_ aNotification: Notification) {
statusItem.button?.title = "A title"
}
func updateTitle(newTitle : String) {
statusItem.button?.title = newTitle
}
设置视图控制器:
@IBAction func didKlickChange(_ sender: Any) {
AppDelegate().updateTitle(newTitle: "Updated title")
}
当我 运行 应用程序的 StatusBar 显示标题为 "A title" 的新 StatusItem。这么好,到目前为止。
但是当我点击按钮时,唯一发生的事情是一个新的状态项在旧状态项旁边出现很短的时间。旧的不会更新。
有合适的解决方案吗?
感谢您的帮助!
AppDelegate()
创建了一个全新的 class 实例,这不是您期望的实例。您需要实际参考
@IBAction func didKlickChange(_ sender: Any) {
(NSApp.delegate as! AppDelegate).updateTitle(newTitle: "Updated title")
}
我想在用户点击我的设置视图中的按钮时更新状态栏中 NSStausItem 的 button.title 属性。但是,NSStatusItem 目前没有改变。
AppDelegate:
let statusItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.variableLength)
func applicationDidFinishLaunching(_ aNotification: Notification) {
statusItem.button?.title = "A title"
}
func updateTitle(newTitle : String) {
statusItem.button?.title = newTitle
}
设置视图控制器:
@IBAction func didKlickChange(_ sender: Any) {
AppDelegate().updateTitle(newTitle: "Updated title")
}
当我 运行 应用程序的 StatusBar 显示标题为 "A title" 的新 StatusItem。这么好,到目前为止。 但是当我点击按钮时,唯一发生的事情是一个新的状态项在旧状态项旁边出现很短的时间。旧的不会更新。 有合适的解决方案吗?
感谢您的帮助!
AppDelegate()
创建了一个全新的 class 实例,这不是您期望的实例。您需要实际参考
@IBAction func didKlickChange(_ sender: Any) {
(NSApp.delegate as! AppDelegate).updateTitle(newTitle: "Updated title")
}