具有多个详细信息表视图(如 Mail.app)的主详细信息界面
我有一个 Cocoa 应用程序,其布局与 Mail.app 类似:
- 左侧的源列表,用户可以在其中选择多个条目之一
- 主内容区域中的详细表视图显示基于左侧所选项目的
列表希望为每个主项目单独维护明细表视图中的选择。
目前我只有一个详细信息表视图和一个数组控制器。当主选择发生更改时,我会更新详细信息数组控制器的 contents
绑定。
我想我可能需要多个详细数组控制器——主列表中的每个条目一个。
有没有更简单的方法/推荐模式来做到这一点?
I have a Cocoa app with a similar layout like Mail.app:
- A source list on the left where the user can select one of multiple entries
- A detail table view in the main content area showing a list based on the selected item on the left
I'd like the selection in the detail table view to be maintained separately for each master item.
Currently I have only one detail table view and one array controller. When the master selection changes, I update the contents
binding for the detail array controller.
I think I may need multiple detail array controllers -- one for each entry in the master list.
Is there an easier way/recommended pattern to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每个表都需要一个数组控制器。对于每个详细数组控制器,您需要将
contents
绑定到主数组控制器的selectedObjects
键。因此,如果您有三个数组控制器:
master
、detail1
和detail2
,则content
绑定应该使用selectedObjects
关键路径将detail1设置为master
。detail2
的content
绑定应设置为detail1
,同样使用selectedObjects
的键路径。您无需以编程方式更改
contents
绑定。You need an array controller for each table. For each detail array controller, you need to bind the
contents
binding to theselectedObjects
key of the master array controller.So if you had three array controllers,
master
,detail1
anddetail2
, then thecontent
binding ofdetail1
should be set tomaster
using a key path ofselectedObjects
.The
content
binding ofdetail2
should be set todetail1
, also using a key path ofselectedObjects
.You don't need to change the
contents
binding programmatically.