我设置了NSTableView
,其列绑定到NSArrayController
,其内容来自NSMutableArray
Matches
NSMutableDictionary
}实例
虽然 工作正常,但我遇到了这个问题:
当更新Matches
数组时(这可能经常发生),表视图可能无法更新,但是当重绘视图时(例如,当我最小化并重新加载我的应用程序时)内容出现很好。
有什么想法吗?我怎么能使重绘视图/更新内容?
提示:
[tableView reloadData]
数组后也使用了Matches
,但没有效果。答案 0 :(得分:4)
听起来你正在直接操纵数组。如果是这样,你可以“在控制器背后”这样做,可以这么说。它没有得到阵列发生变化的任何通知。
理想情况下,数组控制器应该是负责从模型中添加和删除内容的对象;您应该在控制器上使用addObject:
和removeObject:
(或类似),而不是数组本身。
如果失败,您可以在操作数组时发出KVO通知(willChangeValueForKey:
和didChangeValueForKey:
);这将使控制器获得更改。