如何从不同的 ViewController 重新加载 NSTableView 数据

how to reload NSTableView data from a different ViewController

我正在为 macOS 开发一个简单的笔记应用程序。我有一个主页,它有一个显示所有笔记的 NSTableView,当您单击新笔记按钮时,会出现一个新视图,您可以在其中创建新笔记。单击注释后,它会将新注释添加到数据库中,并且应该重新加载 table 查看数据,但我需要再次停止当前的 运行 和 运行 程序以查看更改.

我用 this post 在 iOS 上实现了相同的效果,但在 MacOS 上似乎不起作用

那我该如何适应:

override func viewDidLoad() {
    super.viewDidLoad
    NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil)
}

在首页VC

和行:

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)

在 saveNewNote IBAction 中可以在 macOS 中工作?您甚至可以在 macOS 应用程序中使用 NotificationCenter 还是只能在 iOS?

NSNotificationCenter 是 Foundation 框架的一部分,因此在 macOS 上绝对可用。

您应该能够像在 iOS 上一样使用它。 如果您有一个名为 saveNewNoteIBAction,您可以在该方法中按照您编写的方式发送通知。 在拥有 table 的视图控制器中,像您写的那样添加观察者,然后重新加载 table...

如果它不起作用,我们可能需要一些代码示例来说明您如何在 Mac 应用程序上进行设置,以便更好地了解不起作用的原因。