0

我有一个 NSTableView,它使用控制器对象来显示 NIB 作为数据源。我实现了 NSTableView 非正式协议。

这个 NSTableView 从核心数据中获取它的值。我启动应用程序,加载我在 XML 中的所有值,然后显示它们。

我的问题是, NSTableView 似乎没有在表的末尾添加任何新行。如果我在永久存储中没有值的情况下启动应用程序并添加另一个值(添加值可以工作,因为我可以看到它们被保存到 XML),表视图只是忽略新值。

如果我添加一个我知道会出现在表格末尾的值(内容按字母顺序排列),我将看不到新值。

如果我和一个我知道的值不会走到表的末尾,则该值将被添加,我会在表上看到它,但表上的最后一个值将被推出并消失。

我注意到 - (int)numberOfRowsInTableView:(NSTableView *)tv 仅在应用程序启动时调用,而不是在我执行 [tableView reloadData] 时调用。是什么导致此事件被触发?我尝试在 tableView 上调用 reloadData 之前手动触发它,但似乎不起作用。

关于可能导致这种情况的任何想法?

有没有人遇到过这样的事情?任何线索可能是什么?

4

1 回答 1

0

Alex 的评论让我回顾了代码,特别是 Interface Builder 中的绑定。原来我已经设置了表和我的控制器对象之间的绑定并实现了 NSTableDataSource。

我已经删除了所有绑定,只实现了NSTableDataSource协议。

于 2009-09-08T19:04:29.993 回答