我有一个NSTableView,它使用NIB的控制器对象显示为数据源。我实现了NSTableView非正式协议。
此NSTableView从Core Data获取其值。我启动应用程序,加载我在XML中的所有值,然后显示它们。
我的问题是,NSTableView似乎没有在表的末尾添加任何新行。如果我在永久存储中没有值启动应用程序并添加另一个(添加值,因为我可以看到它们被保存到XML),表视图只是忽略新值。
如果我添加一个值,我知道它会到达表的末尾(内容按字母顺序排列),我不会看到新值。
如果我和我知道的值不会到达表的末尾,则会添加该值,我将在表中看到它,但表中的最后一个值将被推出并消失。
我注意到 - (int)numberOfRowsInTableView:(NSTableView *)tv只在应用程序启动时调用,而不是在我执行[tableView reloadData]时调用。导致此事件被解雇的原因是什么?我尝试在tableView上调用reloadData之前手动触发它,但似乎没有用。
对可能导致此问题的任何想法?
有没有人遇到过这样的事情?有什么线索可能是什么?
答案 0 :(得分:0)
Alex的评论让我回顾了代码,特别是Interface Builder中的绑定。事实证明我已经在表和我的控制器对象之间设置了绑定并实现了NSTableDataSource。
我删除了所有绑定,只实现了NSTableDataSource协议。