【问题标题】:NSTableView loads data, but cannot reloadNSTableView 加载数据,但无法重新加载
【发布时间】:2014-03-21 03:12:03
【问题描述】:

我设置了两个 NSTableView,由一个 nstableviewdatasource 和委托填充。两个表视图在第一次加载时都会收到数据,但它们拒绝重新加载数据。 tableview 数据源和委托都连接到我在 xib 中的 tableviewcontroller 类对象。

我已经确认我的方法(将新数据设置到我用来填充表格视图的数组)实际上接收到更改的数据。此方法是我填充数据源委托方法使用的数组的唯一方法。它正在从主线程重新加载:

myArray = [classThatHoldsNewVariables.array mutableCopy]; 
[self.myTableView reloadData];

-numberOfRowsInTableView 不会被 reloadData 调用。它仅在应用启动时被调用。

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

帮助:(

编辑:

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

【问题讨论】:

    标签: macos cocoa nstableview reloaddata


    【解决方案1】:

    听起来myTableViewnil,因此发送reloadData 方法没有任何作用。

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

    【讨论】:

    • 它肯定是连接的,因为我可以通过 myTableView 收集标识符。这是一个 OS X 表格视图,而不是 UITableView。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      相关资源
      最近更新 更多