首页 文章

NSComboBox与Core Data一起使用的正确绑定是什么?

提问于
浏览
2

想象一下,如果您将使用具有两个实体(员工和部门)的核心数据应用程序 . 员工与部门(部门)有一对一的关系,反之则是多对多的关系(员工) . 在UI中,您可以选择单个Employee实体并在详细信息区域中编辑详细信息(当然还有其他属性,并且有用于添加和编辑Department实体的UI) . 使用弹出按钮时,绑定是:

content = PopUpArrayController.arrangedObjects
内容值= PopUpArrayController.arrangedObjects.name (名称是NSString)
选中的对象= EmployeeArrayController.selection.department.name

这允许查看弹出菜单中的所有部门,正确选择当前员工的部门,并允许按预期更改该部门 . 目标是为NSComboBox更改此设置,以便用户可以选中该框并在不切换到鼠标的情况下键入部门名称 . 我已经尝试了许多不同的绑定来实现这一目标 . 我甚至让它适用于这些绑定的一次运行:

content = PopUpArrayController.arrangedObjects.name
值= EmployeeArrayController.selection.department.name

至少一次这个按预期工作(当输入的文本与任何现有部门不匹配时,它甚至添加了一个新部门) . 现在,它将显示可用的部门并自动完成,但在组合框中更改值时,不会使用正确的值更新模型 . 如果使用弹出窗口设置或更改部门,则组合框中将显示正确的部门 .

有谁知道我错过了什么?谢谢 .

1 回答

  • 3

    所以我已经找到了至少一个这个问题的答案 . 简短的版本是没有办法只使用绑定来实现这种效果 . 我终于在网上找到了http://frankschmitt.org/2007/06/comboboxen,这给了我足够的细节来解决问题(尽管帖子中的代码格式有一些问题,但NSValueTransformer的文档填补了漏洞) .

相关问题