- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个示例应用程序来帮助我了解核心数据。在此应用程序中,我创建了一个由实体“Friend”和“City”组成的模型。该应用程序在 NSTableView 中列出了我的 friend 以及他们来自哪个城市。在此 TableView 中,我希望城市列成为带有城市列表的 NSComboBoxCell。我已经到目前为止......现在解决问题:
当我从组合框中选择城市时,应用程序会获取所选城市名称的值并将其应用于 friend 当前所在城市的名称。相反,我希望应用程序实际更改用户所在的城市,而不是城市的名称...这个问题有点令人困惑,所以这里有一个示例:从 friend 列表开始,例如
Andy AshevilleFrancois MontrealJeff Asheville
如果我使用 NSComboBoxCell 将 Andy 的城市从阿什维尔更改为蒙特利尔,应用程序实际上会将城市阿什维尔的名称更改为蒙特利尔,因此结果如下所示:
Andy MontrealFrancois MontrealJeff Montreal
应用程序中仍然有两个不同的城市,但现在它们的名称都是蒙特利尔。
考虑到我设置绑定(bind)的方式,这一切对我来说都是有意义的。我通过将模型键路径设置为“city.name”并将 Controller 键设置为arrangedObjects(其中包含好友列表)来绑定(bind)城市表列的值。当然,当单元格的值发生变化时,它也会修改 city.name。那么我的问题就变成了什么是正确的方法来做到这一点,以便改变城市而不是城市名称?
最佳答案
NSComboBox 的目的是“允许您直接输入文本(就像使用 NSTextField 一样)或(...)从显示的项目列表中进行选择”。 (摘自苹果 cocoa 引用)。
所以组合框是一个美化的 NSTextField。您期望的行为更符合 NSPopupButton。
正如您所指出的,NSComboBox 绑定(bind)会更改当前城市的名称值,但不会更改对象关系,因此它们会更改关系所表示的当前城市的名称(然后“传播”到其他 friend )指向同一个 City 实体)。
如果您查看 NSPopupButton 的可用绑定(bind),您会发现差异。您可能想使用 NSPopupButton(Cell) 将城市分配给 friend ,并使用某种“侧面”、基于 NSTableView 的编辑器来管理您的城市名称 - 这实际上是两个不同的任务。
关于cocoa - 如何使用 NSComboBoxCell、NSTableView 和 Core Data 设置关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6497446/
我有一个 NSComboBoxCell,允许用户从列表中选择一个项目,但目前它还允许用户键入他们想要的值。我一直无法找到一种方法来使用户无法在组合框中输入内容(我只是希望他们能够选择列表中的内容)。这
请注意,它不是 NSComboBox,而是 NSComboBoxCell。 另外,请注意我使用的是 Leopard (OSX 10.5)。 到目前为止,我只能在 NSComboBoxCell 项目菜单
我正在努力让 NSComboboxCell 来显示从 NSArray 加载时所期望的选项。 - (IBAction)addProjector:(id)sender { Projector *p = [
我正在开发一个示例应用程序来帮助我了解核心数据。在此应用程序中,我创建了一个由实体“Friend”和“City”组成的模型。该应用程序在 NSTableView 中列出了我的 friend 以及他们来
我不知道我是否设置错误,但我所做的对我来说是有意义的。 我有一个 NSTableView,其中有两列 - 左侧的属性列和右侧的值列。值列包含 NSComboBoxCells,这些值将(动态)预先填充与
我是一名优秀的程序员,十分优秀!