         disposable += tableView.reactive.delegate.feed(
             property: dataSource,
             to: #selector(NSTableViewDelegate.tableView(_:viewFor:row:)),
-            map: { (dataSource: UnderlyingCollection?, tableView: NSTableView, _: NSTableColumn, row: Int) -> NSView? in
+            map: { (dataSource: UnderlyingCollection?, tableView: NSTableView, tableColumn: NSTableColumn, row: Int) -> NSView? in
                 guard let dataSource = dataSource else { return nil }
-                return binder.cellForRow(at: row, tableView: tableView, dataSource: dataSource)
+                return binder.cellForRow(at: row, tableColumn: tableColumn, tableView: tableView, dataSource: dataSource)
             }
         )
 

    Element: ObservableCollectionEventProtocol, Element.UnderlyingCollection.Index == Int, Error == NoError {

    @discardableResult
    public func bind(to tableView: NSTableView, animated: Bool = true, createCell: @escaping (UnderlyingCollection, Int, NSTableView) -> NSView?) -> Disposable {
        let binder = TableViewBinder(measureCell: nil, createCell: createCell)
        if !animated {
            binder.deleteAnimation = nil

        return measureCell?(dataSource, index, tableView) ?? tableView.rowHeight
    }

    open func cellForRow(at index: Int, tableColumn: NSTableColumn?, tableView: NSTableView, dataSource: UnderlyingCollection) -> NSView? {
        return createCell?(dataSource, index, tableColumn, tableView) ?? nil
    }

    open func apply(diff: [CollectionOperation<Int>], to tableView: NSTableView) {
