NSTableView加载数据,但无法重新加载

时间:2014-03-21 03:12:04

标签: macos cocoa nstableview reloaddata

我已经设置了两个NSTableViews,由一个nstableviewdatasource和delegate填充。两个tableviews在首次加载时都会收到数据而没有问题,但是它们拒绝重新加载数据。 tableview数据源和委托都连接到xib中的tableviewcontroller类对象。

我已经确认我的方法,它将新数据设置为我用来填充tableviews的数组,实际上接收更改的数据。这种方法是我填充数据源委托方法使用的数组的唯一方法。它正在从主线程重新加载:

myArray = [classThatHoldsNewVariables.array mutableCopy]; 
[self.myTableView reloadData];
使用reloadData不会调用

-numberOfRowsInTableView。它只会在应用程序启动时调用。

我尝试在代码中手动设置数据源和委托方法,但没有任何成功。我已经尝试了很多不同的方法让reloadData工作,没有任何反应。

帮助:(

修改

我解决了这个问题。这是一个实例问题,我从另一个类中分配init我的nstableviewdatasource来重新加载数据。 Init不加载nib使用的实例,因此它正在重新加载我的tableview的另一个实例,该实例未向用户显示。我通过在tableviewcontroller类中实现nsnotifications来解决这个问题。

2 个答案:

答案 0 :(得分:0)

听起来像myTableView nil,因此发送reloadData方法并不做任何事情。

如果它是插座,请确保它已连接到xib中。如果没有,请注意默认情况下,UITableViewController的表格视图由tableView属性引用,而不是myTableView

答案 1 :(得分:0)

我解决了这个问题。这是一个实例问题,我从另一个类中分配init我的nstableviewdatasource来重新加载数据。 Init不会加载nib使用的实例,因此它会重新加载我的tableview的另一个实例,而不会向用户显示。我通过在tableviewcontroller类中实现nsnotifications来解决这个问题。