如何从不同的 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 上一样使用它。
如果您有一个名为 saveNewNote
的 IBAction
,您可以在该方法中按照您编写的方式发送通知。
在拥有 table 的视图控制器中,像您写的那样添加观察者,然后重新加载 table...
如果它不起作用,我们可能需要一些代码示例来说明您如何在 Mac 应用程序上进行设置,以便更好地了解不起作用的原因。
我正在为 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 上一样使用它。
如果您有一个名为 saveNewNote
的 IBAction
,您可以在该方法中按照您编写的方式发送通知。
在拥有 table 的视图控制器中,像您写的那样添加观察者,然后重新加载 table...
如果它不起作用,我们可能需要一些代码示例来说明您如何在 Mac 应用程序上进行设置,以便更好地了解不起作用的原因。