主 - 详细信息界面中的详细信息的多个视图

时间:2011-09-07 23:56:58

标签: objective-c macos cocoa master-detail

我正在为应用构建首选项窗格,用户可以在其中将Web服务添加到列表中(在左侧的tableview中),并且右侧会出现一个表单,用户可以在其中编辑Web服务的配置选项(如用户名或密码或API密钥或tumblr博客名称等)我认为我需要不同类型服务的不同视图(可能有不同的验证逻辑等)。

我的问题是实现这个的最佳方法是什么?

我做了什么:我有NSSplitView NSTableView。我有一个NSArrayController contentNSUserDefaultsController中的相应密钥绑定,NSTableView绑定到arrangedObjectsselectionIndexes。接下来,我在右侧添加了NSTabView,其中selectedIndex绑定到NSArrayController的selectedIndex,我正在尝试以编程方式插入相应的视图(我创建的视图将选项卡中的自定​​义视图分隔为选项卡。

在我看来,这不是最好的方法。我也不知道在详细视图中绑定字段的内容 - 是否可以在这里使用绑定?你会如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

而不是NSTabView,为检查员(NSView)创建一个空白inspectorView。同样的想法,但有点简单。

tableViewSelectionDidChange中,写下如下内容:

newView = ...;

if (inspectorView != [customInspectorView superview]) {
    NSView *oldView = [[inspectorView subviews] objectAtIndex:0];
    [inspectorView replaceSubview:oldView with:newView];
}

您可以将字段绑定到servicesArrayController.selection.username,依此类推。