表视图未根据绑定更新 - 第二部分

2024-06-21

标题借用自这个问题 https://stackoverflow.com/questions/1336478/table-view-not-updating-according-to-bindings,其中这个是not重复的。请参阅我的回答,了解该提问者出了什么问题;我是该答案的作者,我的问题不是这个。

我有一个包含三列的表视图,其值绑定绑定到arrangedObjects阵列控制器。阵列控制器的contentArray绑定到visitationResults我的文档对象;该数组中的项目是模型类 (VisitationResult) 的实例。我还绑定了数组控制器selectionIndexes and sortDescriptors我的文档的属性。

我正在通过几个访问器改变我的属性:

- (void) addVisitationResult:(VisitationResult *)newVisitationResult {
    [self insertObject:newVisitationResult inVisitationResultsAtIndex:[self countOfVisitationResults]];
    NSLog(@"arrayController arrangedObjects: %@", [arrayController arrangedObjects]);
}

That NSLog语句运行,并确认数组控制器正在收集和排列我的模型对象。这意味着我正在检查我的财产并获取我的文档的 KVO 通知(这证明了先前提问者的问题,即绕过财产的问题,不是我遇到的问题)。

I added NSLog我的模型对象类的访问器方法中的语句。其中之一被数组控制器调用,以便对对象进行排序(该属性是排序键)。数组控制器不知道的另外两个永远不会被调用。

因此,我的表格视图仍然是空白的。


我发现问题是:这是因为我明确绑定了selectionIndexes and sortDescriptors表视图的绑定。

无论如何,这没有必要:我刚刚检查过,并且文档 http://developer.apple.com/mac/library/documentation/Cocoa/Reference/CocoaBindingsRef/BindingsText/NSTableView.html#//apple_ref/occ/binding/NSTableView/selectionIndexes says:

selectionIndexes

通常,selectionIndexes 会自动绑定到第一个 NSTableColumn 所绑定的 NSArrayController。

sortDescriptors

通常这个绑定是自动创建的,绑定到最初绑定的 NSTableColumn 的 NSArrayController 的排序描述符。

看起来不仅没有必要,而且绑定这两者之一或两者都会破坏表视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

表视图未根据绑定更新 - 第二部分 的相关文章

随机推荐