diff --git a/Example/Example/TableSidebarViewController.swift b/Example/Example/TableSidebarViewController.swift index 9edfdcfb..a0c1c8d2 100644 --- a/Example/Example/TableSidebarViewController.swift +++ b/Example/Example/TableSidebarViewController.swift @@ -16,7 +16,7 @@ class TableSidebarViewController: NSViewController { @IBOutlet var tableView: NSTableView! lazy var dataSource = DataSource(tableView: tableView, cellRegistration: cellRegistration) - + let cellRegistration = CellRegistration { tableCell, _, _, sidebarItem in /// `defaultContentConfiguration` returns a table cell content configuration with default styling based on the table view it's displayed at (in this case a sidebar table). var configuration = tableCell.defaultContentConfiguration() diff --git a/Sources/AdvancedCollectionTableView/Extensions/NSCollectionView/NSCollectionView+DragSessionMove.swift b/Sources/AdvancedCollectionTableView/Extensions/NSCollectionView/NSCollectionView+DragSessionMove.swift index 35a56b6b..bd6e981c 100644 --- a/Sources/AdvancedCollectionTableView/Extensions/NSCollectionView/NSCollectionView+DragSessionMove.swift +++ b/Sources/AdvancedCollectionTableView/Extensions/NSCollectionView/NSCollectionView+DragSessionMove.swift @@ -15,22 +15,19 @@ extension NSCollectionView { setAssociatedValue(newValue, key: "draggingSessionMoveHandler") let selector = #selector(NSCollectionView.draggingSession(_:movedTo:)) if newValue != nil { - guard !isMethodReplaced(selector) else { return } + guard !isMethodHooked(selector) else { return } do { - try replaceMethod( - selector, - methodSignature: (@convention(c) (AnyObject, Selector, NSDraggingSession, CGPoint) -> ()).self, - hookSignature: (@convention(block) (AnyObject, NSDraggingSession, CGPoint) -> ()).self) { store in { - object, session, point in - (object as? NSCollectionView)?.draggingSessionMoveHandler?(session, point) - store.original(object, selector, session, point) - } - } + try hook(selector, closure: { original, object, sel, session, point in + (object as? NSCollectionView)?.draggingSessionMoveHandler?(session, point) + original(object, sel, session, point) + } as @convention(block) ( + (AnyObject, Selector, NSDraggingSession, CGPoint) -> Void, + AnyObject, Selector, NSDraggingSession, CGPoint) -> Void) } catch { debugPrint(error) } } else { - resetMethod(selector) + revertHooks(for: selector) } } } diff --git a/Sources/AdvancedCollectionTableView/Extensions/NSTableView/NSTableView+DragSessionMove.swift b/Sources/AdvancedCollectionTableView/Extensions/NSTableView/NSTableView+DragSessionMove.swift index 76131f61..b102d0ad 100644 --- a/Sources/AdvancedCollectionTableView/Extensions/NSTableView/NSTableView+DragSessionMove.swift +++ b/Sources/AdvancedCollectionTableView/Extensions/NSTableView/NSTableView+DragSessionMove.swift @@ -8,21 +8,22 @@ import AppKit import FZSwiftUtils +/* extension NSTableView { var draggingSessionMovedHandler: ((NSDraggingSession, CGPoint)->())? { get { getAssociatedValue("draggingSessionMoveHandler") } set { setAssociatedValue(newValue, key: "draggingSessionMoveHandler") let selector = #selector(NSTableView.draggingSession(_:movedTo:)) - if newValue != nil, !isMethodReplaced(selector) { + if newValue != nil, !isMethodReplaced(selector), !isMethodHooked(selector) { do { if responds(to: selector) { - try replaceMethod(selector, - methodSignature: (@convention(c) (AnyObject, Selector, NSDraggingSession, CGPoint) -> ()).self, - hookSignature: (@convention(block) (AnyObject, NSDraggingSession, CGPoint) -> ()).self) { store in { object, session, point in - (object as? NSTableView)?.draggingSessionMovedHandler?(session, point) - store.original(object, selector, session, point) - } } + try hook(selector, closure: { original, object, sel, session, point in + (object as? NSTableView)?.draggingSessionMovedHandler?(session, point) + original(object, sel, session, point) + } as @convention(block) ( + (AnyObject, Selector, NSDraggingSession, CGPoint) -> Void, + AnyObject, Selector, NSDraggingSession, CGPoint) -> Void) } else { try addMethod(selector, methodSignature: (@convention(block) (AnyObject, NSDraggingSession, CGPoint) -> ()).self) { object, session, point in @@ -34,7 +35,9 @@ extension NSTableView { } } else if newValue == nil { resetMethod(selector) + revertHooks(for: selector) } } } } +*/