如何以编程方式使用 NSArrayController 对 NSTableView 进行排序?
How to sort NSTableView with NSArrayController programmatically?
我有一个只有一列但子视图中有不同值的 NSTableView。 tableView 由绑定到 CoreData 实体的 NSArrayController 填充。
我想知道如何通过自定义按钮对 tableView 进行排序。
class ViewController: NSViewController {
@IBOutlet var arrayController: NSArrayController!
@IBAction func sortByName(_ sender: Any) {
arrayController.sort... ?
}
@IBAction func sortByAge(_ sender: Any) {
arrayController.sort... ?
}
}
我知道如何让 NSArrayController 通过单击行 header 来对列进行排序。但由于我只有一列但值不同,我试图找到一种方法来按自定义按钮排序。
任何帮助将非常感激。
设置阵列控制器sortDescriptors
属性并调用arrayController.rearrangeObjects()
class ViewController: NSViewController {
@IBOutlet var arrayController: NSArrayController!
@IBAction func sortByName(_ sender: Any) {
sortArrayController(by: "name")
}
@IBAction func sortByAge(_ sender: Any) {
sortArrayController(by: "age")
}
func sortArrayController(by key : String) {
arrayController.sortDescriptors = [NSSortDescriptor(key: key, ascending: true)]
arrayController.rearrangeObjects()
}
}
我有一个只有一列但子视图中有不同值的 NSTableView。 tableView 由绑定到 CoreData 实体的 NSArrayController 填充。 我想知道如何通过自定义按钮对 tableView 进行排序。
class ViewController: NSViewController {
@IBOutlet var arrayController: NSArrayController!
@IBAction func sortByName(_ sender: Any) {
arrayController.sort... ?
}
@IBAction func sortByAge(_ sender: Any) {
arrayController.sort... ?
}
}
我知道如何让 NSArrayController 通过单击行 header 来对列进行排序。但由于我只有一列但值不同,我试图找到一种方法来按自定义按钮排序。 任何帮助将非常感激。
设置阵列控制器sortDescriptors
属性并调用arrayController.rearrangeObjects()
class ViewController: NSViewController {
@IBOutlet var arrayController: NSArrayController!
@IBAction func sortByName(_ sender: Any) {
sortArrayController(by: "name")
}
@IBAction func sortByAge(_ sender: Any) {
sortArrayController(by: "age")
}
func sortArrayController(by key : String) {
arrayController.sortDescriptors = [NSSortDescriptor(key: key, ascending: true)]
arrayController.rearrangeObjects()
}
}