@@ -20,7 +20,7 @@ public extension NSTableViewDiffableDataSource {
20
20
21
21
- Returns: The view to display the specified column and row.
22
22
*/
23
- func tableView( _ tableView: NSTableView , viewFor tableColumn: NSTableColumn ? , row: Int ) -> NSView ? {
23
+ public func tableView( _ tableView: NSTableView , viewFor tableColumn: NSTableColumn ? , row: Int ) -> NSView ? {
24
24
let selector = NSSelectorFromString ( " _tableView:viewForTableColumn:row: " )
25
25
if let meth = class_getInstanceMethod ( object_getClass ( self ) , selector) {
26
26
let imp = method_getImplementation ( meth)
@@ -41,7 +41,7 @@ public extension NSTableViewDiffableDataSource {
41
41
42
42
- Returns: An instance or subclass of `NSTableRowView`. If `nil` is returned, an `NSTableRowView` instance will be created and used.
43
43
*/
44
- func tableView( _ tableView: NSTableView , rowViewForRow row: Int ) -> NSTableRowView ? {
44
+ public func tableView( _ tableView: NSTableView , rowViewForRow row: Int ) -> NSTableRowView ? {
45
45
let selector = NSSelectorFromString ( " _tableView:rowViewForRow: " )
46
46
if let meth = class_getInstanceMethod ( object_getClass ( self ) , selector) {
47
47
let imp = method_getImplementation ( meth)
@@ -62,7 +62,7 @@ public extension NSTableViewDiffableDataSource {
62
62
63
63
- Returns: `true` if the specified row should have the group row style drawn, `false` otherwise.
64
64
*/
65
- func tableView( _ tableView: NSTableView , isGroupRow row: Int ) -> Bool {
65
+ public func tableView( _ tableView: NSTableView , isGroupRow row: Int ) -> Bool {
66
66
let selector = NSSelectorFromString ( " _tableView:isGroupRow: " )
67
67
if let meth = class_getInstanceMethod ( object_getClass ( self ) , selector) {
68
68
let imp = method_getImplementation ( meth)
@@ -105,13 +105,7 @@ public extension NSTableViewDiffableDataSource {
105
105
}
106
106
107
107
private func _previewImage( for item: ItemIdentifierType , tableColumn: NSTableColumn , tableView: NSTableView , useColumnWidth: Bool = true ) -> NSImage ? {
108
- guard let index = tableView. tableColumns. firstIndex ( of: tableColumn) else { return nil }
109
- let view : NSView
110
- if let row = row ( forItemIdentifier: item) , let _view = tableView. view ( atColumn: index, row: row, makeIfNecessary: true ) {
111
- view = _view
112
- } else {
113
- view = cellProvider ( tableView, tableColumn, 0 , item) as! NSView
114
- }
108
+ guard tableView. tableColumns. contains ( tableColumn) , let view = createCellView ( for: item, tableColumn: tableColumn, tableView: tableView) else { return nil }
115
109
view. frame. size = view. systemLayoutSizeFitting ( width: tableColumn. width)
116
110
view. frame. size. width = useColumnWidth ? tableColumn. width : view. frame. size. width
117
111
return view. renderedImage
0 commit comments