gpt4 book ai didi

macos - cocoa 在 NSTableView 内绑定(bind) NSTableView

转载 作者:行者123 更新时间:2023-12-03 16:41:00 26 4
gpt4 key购买 nike

我正在尝试在 NSTableView 内显示 NSTableView。这是一个类似 iTunes 的专辑/轨道 View 。所以有一个包含 10 张专辑的列表,每个专辑都有一些轨道。我想在外部表格 View 中显示专辑,并在内部表格 View 中显示每个专辑的轨道。

第一个 NSTableView 绑定(bind)到 NSArrayController。数组中的每个对象都有自己的“tracks”NSArrayController,但我不知道如何告诉“tracks”NSTableView其内容来自“album”NSTableView的属性。

最佳答案

如果我理解正确的话,嵌套数组 Controller 的源内容来自所有者表单元格的objectValue。所以你不能将数组 Controller 内容源作为表格单元格的objectValue。我正在做类似的事情,因为我想根据对象值过滤数组内容

我正在做的事情(似乎有效)是为嵌套表格单元格 View 创建一个单独的 nib 文件,并使用它自己的 nstablecellview 子类。将数组 Controller 包含在 Nib 中,并在单元 View 子类中创建它的导出。

在 TableView Controller 的 viewDidLoad 方法中将其注册到 TableView 中:

NSNib *cellView = [[NSNib alloc] initWithNibNamed:@"MyTableCellView" bundle:nil];
[myTableView registerNib:cellView forIdentifier:@"myTableCellView"];

然后,在单元 View 子类的 awakeFromNib 方法中,手动进行需要对象值的绑定(bind):

[self.arrayController bind:@"contentSet"
toObject:self
withKeyPath:@"objectValue.tracks"
options:nil];

瞧。

请注意,使用此技术时,nib 文件的文件所有者不是您的 nstablecellview 子类,而是 TableView 的 View Controller 。

关于macos - cocoa 在 NSTableView 内绑定(bind) NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575099/

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