NSTableView内容未正确刷新

时间:2012-05-20 19:13:00

标签: objective-c cocoa nsmutablearray nstableview nsarraycontroller

我设置了NSTableView,其列绑定到NSArrayController,其内容来自NSMutableArray Matches NSMutableDictionary}实例

虽然 工作正常,但我遇到了这个问题:

当更新Matches数组时(这可能经常发生),表视图可能无法更新,但是当重绘视图时(例如,当我最小化并重新加载我的应用程序时)内容出现很好。

有什么想法吗?我怎么能使重绘视图/更新内容?


提示:

  • 我在更新[tableView reloadData]数组后也使用了Matches,但没有效果。
  • 这种情况不会一直发生,但有时......(在内容出现之前,需要一些耐心并点击这里和最小化应用程序)。

1 个答案:

答案 0 :(得分:4)

听起来你正在直接操纵数组。如果是这样,你可以“在控制器背后”这样做,可以这么说。它没有得到阵列发生变化的任何通知。

理想情况下,数组控制器应该是负责从模型中添加和删除内容的对象;您应该在控制器上使用addObject:removeObject:(或类似),而不是数组本身。

如果失败,您可以在操作数组时发出KVO通知(willChangeValueForKey:didChangeValueForKey:);这将使控制器获得更改。