我有一个示例应用程序,我正在帮助我了解Core Data。在这个应用程序中,我创建了一个由实体“朋友”和“城市”组成的模型。应用程序列出我的朋友以及他们来自哪个城市的NSTableView。在这个表格视图中,我希望城市列是一个带有城市列表的NSComboBoxCell。我得到了这么多...现在的问题:
当我从组合框中选择城市时,应用程序将采用所选城市名称的值,并将其应用于朋友当前所在城市的名称。相反,我希望应用程序能够真正改变用户来自的城市,而不是城市的名称......这有点令人困惑的问题,所以这里是一个例子:从一个朋友列表开始,如如何使用NSComboBoxCell,NSTableView和核心数据设置关系
Andy Asheville Francois Montreal Jeff Asheville
如果我使用NSComboBoxCell改变城市安迪从阿什维尔飞往蒙特利尔,应用程序实际上改变了城市阿什维尔蒙特利尔的名称,所以结果是这样的:
Andy Montreal Francois Montreal Jeff Montreal
还有两个不同在申请中的城市,但他们现在都有蒙特利尔的名字。
考虑到我设置绑定的方式,这一切对我来说都有意义。我通过将模型关键路径设置为“city.name”并将Controller Key设置为包含好友列表的Objects对象来约束城市表列的值。所以当然,当一个单元格的值发生变化时,它会修改city.name。那么我的问题就变成了什么才能做到这一点,以便城市改变而不是城市名称?
太好了,谢谢!我做到了,事情很好。如果用户可以输入城市名称而不是用鼠标选择它,那将会很好。系统可以使用诸如自动完成之类的东西。 – Jason
那么,在这一点上,我们正在摆脱原来的问题和设计问题,但你可以回到NSComboBox并调查[完成函数](http://developer.apple.com/library/mac/#文档/ Cocoa/Reference/ApplicationKit/Classes/NSComboBoxCell_Class/Reference/Reference.html%23 // apple_ref/doc/uid/20000098-BAJEAFCB),但这将需要代码。还有一个有趣的讨论[这里](http://lists.apple.com/archives/cocoa-dev/2006/Jun/msg00459.html)。 – burton