2011-09-07 208 views
1

我正在为应用程序构建一个首选项窗格,其中用户可以将Web服务添加到列表(在左侧的tableview中)并且窗体应该显示在右侧用户可以编辑Web服务的配置选项(如用户名或密码或API密钥或tumblr博客名称等)。我想我需要针对不同类型服务的不同视图(可能使用不同的验证逻辑等) 。主详细界面中详细信息的多重视图

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

我做了什么:我有一个NSTableView一个NSSplitView。我有一个NSArrayController与它的content绑定到NSUserDefaultsControllerNSTableView相应的密钥绑定到它的arrangedObjectsselectionIndexes。接下来我在右边添加了一个NSTabView,它的selectedIndex绑定到了NSArrayController的selectedIndex,我试图以选项卡的形式以编程方式插入适当的视图(我在IB中创建了这些视图作为单独的自定义视图)。

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

回答

1

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

tableViewSelectionDidChange,写类似:

newView = ...; 

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

可以绑定你的领域servicesArrayController.selection.username等。