ОК, нашел его.
Первым шагом было установить пользовательский NSSortDescriptor
для столбца, используя NSTableColumn.sortDescriptorPrototype
.
Чтобы создать NSSortDescriptor, вы можете использовать: init(key: String?, ascending: Bool, comparator: Comparator)
или init(key: String?, ascending: Bool, selector: Selector?)
, который дал бы для компаратора:
column.sortDescriptorPrototype = NSSortDescriptor(key: "myBindingKeyPath", ascending: true, comparator: { (obj1, obj2) -> ComparisonResult in
// .... your logic
return .orderedSame
})
и для селектора:
Column.sortDescriptorPrototype = NSSortDescriptor(key: "myBindingKeyPath", ascending: true, selector: #selector(MyBinary.compare(_:)))
}
и функцию сравнения в классе MyBinary, которая будетдоступ через селектор:
@objc
public func compare(_ other: PDFBinary) -> ComparisonResult {
return .orderedSame
}
Второе решение решило мою проблему, потому что я использовал свойство autosaveTableColumns
, которое могло вызвать проблему с первым решением.