使用Storyboard连接深入分析NSSplitView出口

Cra*_*tis 13 macos xcode cocoa objective-c storyboard

我有一个NSSplitView管理深入层次结构的人.父/左侧显示组,而子/右侧接收组选择已更改的通知,并更新以显示子项.

但是:创建NSSplitView使用故事板时,会创建3个场景:一个用于拆分视图本身,另一个用于每个右/左NSViewController实例.

这里的问题是,我有两个控制器,也作为NSTableViewDataSource商品,与控制器应该有一个IBOutlet孩子控制器,它能够提供直接通知的选择发生了变化.

但!因为这些控制器在不同的场景中,所以我无法连接它们.我也无法将它们移动到拆分视图的父场景,因为它们无法访问NSTableView插座.(表也不会将控制器作为代理/数据源引用.)

我需要在NSNotification这里使用吗?它看起来是间接的,多余的,我还没有在Mac上找到基于segue的方法.

在此输入图像描述

Cor*_*ory 11

新的NSSplitViewController和NSTabViewController类是Apple称之为容器控制器的类.您可以使用NSViewController中的新属性获取容器内其他控制器的引用

@property (readonly) NSViewController *parentViewController
@property (copy) NSArray *childViewControllers
Run Code Online (Sandbox Code Playgroud)

例如,如果您想从父表控制器获取对子表控制器的引用.在父表控制器viewDidLoad中,您可以执行以下操作

myChildTableController = [self.parentViewController childViewControllers][1];
Run Code Online (Sandbox Code Playgroud)

或者从您的子表控制器反之亦然

myParentTableController = [self.parentViewController childViewControllers][0];
Run Code Online (Sandbox Code Playgroud)