重新加载后恢复 NSTableView 排序顺序

Restoring NSTableView sort order after reload

在 Interface Builder 中,NSTableView 设置有 sortable 列(通过单击列 headers)。数据源使用 NSArray。当更新一行数据时,table的数据被重新加载,刷新数组并根据数组的顺序排列数据行。

我想保留 table 列的排序顺序。我尝试保存 table 的 sortDescriptors、重新加载数据并恢复 table 的 sortDescriptors,但这并没有触发所需的重新加载。我怀疑我想根据 sortDescriptors 刷新数组,以便根据需要重新加载。请赐教。

而不是使用 NSArray 在数据源中使用 NSMutableArray 并根据 sortDescriptors.Mutable 数组排序将按照您的 table 列排序顺序保留记录。

答案就在我眼皮底下。我可以使用数据源方法 tableView:sortDescriptorsDidChange:.

我认为更简洁的解决方案是 post 数据源的通知。它应该与单击列 header 时的通知相同。如果有人知道,请在这里分享。