Mac OS 更改绑定核心数据控件的值

Mac OS change value of bound core data control

我刚刚开始使用 Core Data。我有一个 XCode 8 Swift 3 项目,其中包含一个带有数组控制器和多个绑定控件的表单。该表单可以完美地保存和调用 Core Data 中的数据。

我想在表单上放置一个按钮,用于在几个绑定的文本框中设置值。我可以设置文本框的 stringValue 属性,它确实会更改显示的数据,但不会保存数据。当我移动到另一条记录并返回时,我看到了旧值。

如何设置新值以便在 Core Data 存储中更新?

更新阵列控制器中的数据。

测试应用:

  • 新建Xcode项目,macOS Cocoa应用程序,Swift,使用Core Data。
  • 转到 MainMenu.xib 并添加一个 NSArrayController
  • 在辅助编辑器中显示 AppDelegate.swift,在标准编辑器中显示 MainMenu.xib(或相反)。
  • NSArrayController 控制拖动或右键拖动到下面的行 @IBOutlet weak var window: NSWindow! 以创建出口。

数组控制器中设置数据示例:

for person in arrayController.selectedObjects as! [Person] {
    person.name = "John"
    person.address = "Street 1"
}

PersonNSManagedObject 子类。 nameaddress 是文本框中显示的属性。