1
我已经成立了一个NSTableView
,其列绑定到一个NSArrayController
从一个NSMutableArray
(Matches
)获取其内容NSMutableDictionary
实例。NSTableView的内容不被刷新正确
虽然事情是工作,我遇到了这个问题:
当Matches
阵列进行更新(这可能真的很经常发生),表视图可能无法更新,但是当视图重新绘制(例如,当我最小化并重新加载我的应用程序时)内容显示得很好。
有关于此的任何想法?我怎么能使它重绘视图/更新内容?
提示:
- 我也用
[tableView reloadData]
更新我Matches
后阵,但没有效果。 - 这不会发生在所有的时间,但有些时候......(这是需要一定的耐心,点击这里或最小化的应用程序,内容出现之前)。
手动发布KVO通知应该是最后的手段。更好的做法是使用[符合KVO标准的索引访问器方法](https://developer.apple.com/library/mac/documentation/cocoa/conceptual/KeyValueCoding/Articles/AccessorConventions.html#//apple_ref/doc/uid/20002174 -SW4)来改变数组。我甚至更喜欢发送消息给控制器。如果您手动发出KVO通知,最好使用数组特定的'-willChange:valuesAtIndexes:forKey:'和'-didChange:valuesAtIndexes:forKey:'。他们允许观察员做出更有效的回应。 –
非常感谢!它**可以工作......(Baaah!我已经使用了表格和绑定以及1000次的东西,而且我仍然不断地丢失东西 - 尽管我过去肯定偶然发现了它们,并且可能也修复了它们...) –