领域 + NSTableView + NSArrayController

Realm + NSTableView + NSArrayController

我的 macOS 应用程序有一些问题,希望你能帮助我。 我在 macOS 上还很新,所以请多关照 ;)

应用程序的一部分包含一个简单的 NSTableView,其内容绑定到 NSArrayController。 NSArrayController 由领域数据库提供。

如您所见,每一行都有一个复选框,它应该在领域对象中设置 bool 值。

绑定没问题,所以如果我 mark/unmark 复选框似乎尝试在领域对象上书写。 但是由于领域需要一个不会被触发的活动写事务,它崩溃了。

我的问题是: 如何使用 table 视图绑定在领域对象上书写? 有任何想法吗 ?

您可以尝试将以下内容添加到您的模型对象(Realm 对象)中:

override func setValue(_ value: Any?, forKey key: String) {
    try! realm?.write {
        self.mySetValue(value, forKeyPath: key) // bug in swift preventing directly calling super here
    }
}

private func mySetValue (_ value: Any?, forKeyPath key: String) {
    super.setValue(value, forKey: key)
}