答案 0 :(得分:3)
设置表格的排序描述符是不够的。您还需要通过将排序描述符应用于数据模型然后重新加载表格数据(通过NSTableViewDelegate
)来响应optional func tableView(_ aTableView: NSTableView, sortDescriptorsDidChange oldDescriptors: [AnyObject])
方法reloadData()
。无论您是将排序描述符应用于整个表(不允许用户点击列标题),还是单个列(允许用户点击列标题),都是如此。
如评论中所述,您无法对字典进行排序,因此您需要缓存已排序的数组,并让表数据源方法引用数组而不是字典。