我正在开发一个示例应用程序来帮助我了解 Core Data。在这个应用程序中,我创建了一个由实体“朋友”和“城市”组成的模型。该应用程序在 NSTableView 中列出了我的朋友以及他们来自哪个城市。在这个表格视图中,我希望 City 列是一个带有城市列表的 NSComboBoxCell。我已经走到这一步了……现在解决问题:
当我从组合框中选择城市时,应用程序会获取所选城市名称的值并将其应用于朋友当前所在城市的名称。相反,我希望应用程序实际更改用户所在的城市,而不是城市的名称......这个问题有点令人困惑,所以这里有一个例子:从一个朋友列表开始,比如
安迪·阿什维尔 弗朗索瓦·蒙特利尔 杰夫·阿什维尔
如果我使用 NSComboBoxCell 将安迪的城市从阿什维尔更改为蒙特利尔,应用程序实际上将阿什维尔市的名称更改为蒙特利尔,因此结果如下所示:
安迪蒙特利尔 弗朗索瓦·蒙特利尔 杰夫蒙特利尔
应用程序中仍然有两个不同的城市,但它们现在都有蒙特利尔这个名字。
考虑到我设置绑定的方式,这一切对我来说都是有意义的。我通过将Model Key Path设置为“city.name”并将Controller Key设置为arrangeObjects来绑定城市表列的值,其中包含朋友列表。所以当然,当一个单元格的值改变时,它会修改 city.name。那么我的问题变成了这样做的正确方法是什么,以便城市改变而不是城市名称?