1

我设置了一个NSTableView,其列绑定到一个从( ) 个实例NSArrayController中获取其内容的。NSMutableArrayMatchesNSMutableDictionary

尽管一切正常,但我遇到了这个问题:

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

有什么想法吗?我怎样才能让它重绘视图/更新内容?


提示:

  • 我也在[tableView reloadData]更新我的Matches数组后使用过,但没有效果。
  • 这不会一直发生,但有时会发生......(在内容显示之前,需要一些耐心并在这里和那里单击或最小化应用程序)。
4

1 回答 1

4

听起来您正在直接操作数组。如果是这样,可以这么说,您是在“在控制器背后”进行操作。它不会收到有关数组已更改的任何通知。

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

否则,您可以在操作数组时发出 KVO 通知(willChangeValueForKey:和);didChangeValueForKey:这将使控制器接受更改。

于 2012-05-20T19:37:14.867 回答