使用情节提要连接深入NSSplitView插座

本教程将介绍使用情节提要连接深入NSSplitView插座的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

使用情节提要连接深入NSSplitView插座 教程 第1张

问题描述

我有一个管理向下钻取层次结构的NSSplitView。父/左侧显示组,而子/右侧接收组选择已更改的通知,并更新以显示子项目。

使用情节提要创建NSSplitView时,会创建3个场景:一个用于拆分视图本身,一个用于右/左NSViewController实例。

这里的问题是,我有两个控制器也充当NSTableViewDataSource项,并且控制器应该具有指向控制器的IBOutlet,以便它可以提供选择已更改的直接通知。

但是!因为这些控制器位于不同的场景中,我无法连接它们。我也不能将它们都上移到拆分视图的父场景中,因为它们将无法访问NSTableView插座。(表也不会将控制器引用为委托/数据源。)

我需要在这里使用NSNotification吗?它看起来如此间接和模糊,而且我还没有在Mac上找到基于段的方法。

推荐答案

新的NSSplitViewController和NSTabViewController类是苹果所称的容器控制器。您可以使用NSViewController中的新属性获取对容器内其他控制器的引用

@property (readonly) NSViewController *parentViewController
@property (copy) NSArray *childViewControllers

例如,如果您希望从父表控制器获取对子表控制器的引用。在父表控制器视图DidLoad中,您可以执行以下操作

myChildTableController = [self.parentViewController childViewControllers][1];

或子表控制器反之亦然

myParentTableController = [self.parentViewController childViewControllers][0];

好了关于使用情节提要连接深入NSSplitView插座的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。