gpt4 book ai didi

objective-c - 使用 Storyboard连接向下钻取的 NSSplitView socket

转载 作者:太空狗 更新时间:2023-10-30 03:20:36 39 4
gpt4 key购买 nike

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

但是:当使用 Storyboard创建 NSSplitView 时,会创建 3 个场景:一个用于 Split View本身,一个用于每个右/左 NSViewController 个实例。

这里的问题是我有两个 Controller 也充当 NSTableViewDataSource 项,parent Controller 应该有一个 IBOutlet Controller ,以便它可以提供选择已更改的直接通知。

但是!因为这些 Controller 在不同的场景中,我无法连接它们。我也不能将它们都移动到 Split View的父场景中,因为它们将无法访问 NSTableView socket 。 (表格也不会将 Controller 引用为委托(delegate)/数据源。)

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

enter image description here

最佳答案

Apple 将新的 NSSplitViewController 和 NSTabViewController 类称为容器 Controller 。您可以使用 NSViewController 中的新属性获取对容器内其他 Controller 的引用

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

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

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

或者从你的子表 Controller 反之亦然

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

关于objective-c - 使用 Storyboard连接向下钻取的 NSSplitView socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233060/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com