我创建了一个控制器对象,它有一个属性“db”,它有一个属性“species”,它是一个NSMutableDictionary。“种类”字典具有键的ID和值的种类对象的ID。物种对象具有描述属性。在InterfaceBuilder中,我创建了MyController、NSDictionaryController和NSPopupButton。我想用Species.description填充弹出窗口。选中时,我需要访问相应的ID。
我已将NSDictionaryController设置为使用模型密钥路径“db.species”将“内容字典”绑定到MyController。使用NSPopupButton,到目前为止,我已将“内容值”绑定到NSDictionaryController,控制器键为“arrangedObjects”,模型键路径设置为“value.description”。
这似乎可以填充列表。我的主要问题是什么是连接选择的最佳方式。理想情况下,我希望将选择连接到NSDictionaryController,以便使用NSDictionaryController访问选择。这样做的一个原因是,我可以将其他控件连接到NSDictionaryController以查看当前选择。如果不是,我应该连接到MyController中的属性还是什么?只是在寻找最佳实践。我同样希望通过Interface Builder机制,以便能够轻松地在另一个具有不同视图的应用程序中重用模型和控制器设计。
N按钮:
将内容绑定到NSDictionaryController->安排项目->价值描述
将所选索引绑定到NSDictionaryController->选择指数
绑定NSDictionaryController->db.物种
一切似乎都正常。我可以使用[[[controller selectedObjects]lastObject]值]从控制器抓取对象。我相信它是在一个包含键、值对的选定对象数组中。