使用另一个数组中的数组中的内容填充NSTableView

时间:2014-01-05 18:01:58

标签: cocoa binding nstableview

大家好!

如何使用数组中的字符串填充nstableview的第一列,使用另一个数组中的字符串填充第二列依赖于第一列中的选择?

例如,查看iTunes窗口,其中第一列是选定的播放列表,第二列是歌曲列表。

我在网上找不到这样的东西。

我非常感谢你的帮助。

这是关于我的模型的一点信息:

带有tableView内容的数组,其中填充了NSObject子类的实例。这个实例有三个属性,属性 - NSString对象,最后一个属性是带有另一个字符串的NSArray对象。用于填充第一列的第一个和第二个属性,我不知道如何使用第三个属性(来自另一个数组的字符串)填充列上的sec。

如何使用绑定执行此操作?

1 个答案:

答案 0 :(得分:1)

首先:您不填充列,而是填充行。但是阅读你的整个问题,似乎是你明白这一点。

解决方案是,您使用嵌套数组和两个表视图执行此操作:

绑定:

一个。第一个表视图通过位于模型顶层的阵列控制器获取实例数组。让我们说“播放列表”。此数组为该表视图构建行,可能只有一列。第一列绑定到一个属性,可能是“title”。

playlistsArrayController.contentArray: somewhere.playlists
viewColumn.content: playlistsArrayController.arrangedObjects.title

B中。然后你有第二个表视图与第二个数组控制器。这必然会选择第一个(播放列表)和包含子条目的属性,即。即歌曲。第二个数组构建第二个表视图的行。通常,您有更多列,每个列都绑定到特定属性(“标题”,“长度”,...)

songsArrayController.contentArray: playlistsArrayController.selection.songs
viewColumn1.content: songslistsArrayController.arrangedObjects.title
viewColumn2.content: songslistsArrayController.arrangedObjects.length

仅在解释时才在Safari中键入两个绑定。