将NSTableView的每一行绑定到对象的属性?

时间:2017-02-06 14:32:15

标签: cocoa bind nstableview nsarraycontroller kvc

我有一个绑定到NSTableView的主NSArrayController,每行包含一个MyObject实例。 MyObject有大约30个属性,但NSTableView只有5列(显示最重要的属性)。当选择一行(或更多)时,我有另一个NSTableView(详细视图),显示所有属性,每行一个。详细信息表有两列,一列用于属性名称,另一列用于属性值。

我现在有这个工作,但我的细节NSTableView使用数据源而不是绑定。只要我通知我的详细控制器(管理数据源)主要选择中的更改,以便它可以重新加载详细信息表,这样就可以正常工作。

虽然很容易检测到选择的变化,但是很难检测到所选对象的某个属性的变化。我在StackOverflow的其他地方看到,一种方法是使用一个虚拟属性并使用keyPathsForValuesAffectingValueForKey。这在性能方面是否有效?

是否有其他/更好的方法来构建我的细节NSTableView / NSArrayController,以便每行代表主NSTableView / NSArrayController上所选对象的一个​​属性?如果可能,我想使用绑定。

0 个答案:

没有答案