我使用基于单元格的tableview来存储自定义类数据,例如
class Person {
var name:String = ""
var age: Int = 0
}
然后使用NSMUtableArray收集person1,person2 ...数据,将其称为dataArray。
在column1上显示人名,在column2上显示年龄,工作正常且可编辑。
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
if tableColumn?.identifier == "Name"
{
return (self.dataArray[row] as! Person).name
}
else if tableColumn?.identifier == "Age"
{
return (self.dataArray[row] as! Person).age
}
}
如何使用受尊重的sortDescriptor对每列进行排序?
我遵循fefernce但" sortDescriptorWithKey:tableColumn.identifier" 总是在我的代码中失败,如果将tableColumn.identifier设置为"自我" ,它也使我感到困惑。
以下是我的其他代码片段。
func tableView(_ tableView: NSTableView, sortDescriptorsDidChange oldDescriptors: [NSSortDescriptor]) {
let newDescriptors = tableView.sortDescriptors
dataArray.sort(using: newDescriptors)
tableView.reloadData()
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
// Sort
for tableColumn in tableView.tableColumns {
let sortDescrptor = NSSortDescriptor.init(key: tableColumn.identifier, ascending: true, selector: #selector(NSString.caseInsensitiveCompare))
tableColumn.sortDescriptorPrototype = sortDescrptor
}
}