Objective c 主详图界面中详图的多视图
我正在为一个应用程序构建一个首选项窗格,用户可以在其中将Web服务添加到列表中(在左侧的tableview中),并在右侧显示一个表单,用户可以在其中编辑Web服务的配置选项(如用户名或密码、API密钥或tumblr博客名等)我想对于不同类型的服务我需要不同的视图(可能有不同的验证逻辑等等) 我的问题是,实现这一目标的最佳方式是什么 我所做的:我有一个Objective c 主详图界面中详图的多视图,objective-c,macos,cocoa,master-detail,Objective C,Macos,Cocoa,Master Detail,我正在为一个应用程序构建一个首选项窗格,用户可以在其中将Web服务添加到列表中(在左侧的tableview中),并在右侧显示一个表单,用户可以在其中编辑Web服务的配置选项(如用户名或密码、API密钥或tumblr博客名等)我想对于不同类型的服务我需要不同的视图(可能有不同的验证逻辑等等) 我的问题是,实现这一目标的最佳方式是什么 我所做的:我有一个NSSplitView和一个NSTableView。我有一个NSArrayController,它的内容绑定到NSUserDefaultsContr
NSSplitView
和一个NSTableView
。我有一个NSArrayController
,它的内容
绑定到NSUserDefaultsController
中的相应键,而NSTableView
绑定到它的排列对象
和选择索引
。接下来,我在右侧添加了一个NSTabView
,它的selectedIndex
绑定到NSArrayController
的selectedIndex,并尝试通过编程将适当的视图(我在IB中创建为单独的自定义视图)作为选项卡插入
在我看来,这似乎不是最好的办法。我也不知道如何绑定细节视图中的字段——这里甚至可以使用绑定吗?如何解决此问题?为检查器(
inspectorView
)创建一个空白的NSView
,而不是NSTabView
)。同样的想法,但简单一点
在tableViewSelectionDidChange
中,编写如下内容:
newView = ...;
if (inspectorView != [customInspectorView superview]) {
NSView *oldView = [[inspectorView subviews] objectAtIndex:0];
[inspectorView replaceSubview:oldView with:newView];
}
您可以将字段绑定到
服务raycontroller.selection.username
等。为检查器(检查器视图
)创建一个空白的NSView
)。同样的想法,但简单一点
在tableViewSelectionDidChange
中,编写如下内容:
newView = ...;
if (inspectorView != [customInspectorView superview]) {
NSView *oldView = [[inspectorView subviews] objectAtIndex:0];
[inspectorView replaceSubview:oldView with:newView];
}
您可以将字段绑定到服务raycontroller.selection.username
等