1- //
2- // DataGridCoordinator.swift
3- // TablePro
4- //
5- // Coordinator handling NSTableView delegate and data source for DataGridView.
6- //
7-
81import AppKit
92import SwiftUI
103
114// MARK: - Coordinator
125
13- /// Coordinator handling NSTableView delegate and data source
146@MainActor
157final class TableViewCoordinator : NSObject , NSTableViewDelegate , NSTableViewDataSource ,
168 NSControlTextEditingDelegate , NSTextFieldDelegate , NSMenuDelegate
@@ -32,14 +24,9 @@ final class TableViewCoordinator: NSObject, NSTableViewDelegate, NSTableViewData
3224 var databaseType : DatabaseType ?
3325 var tableName : String ?
3426 var primaryKeyColumns : [ String ] = [ ]
35- /// First PK column, for copy-as-SQL and single-column contexts
3627 var primaryKeyColumn : String ? { primaryKeyColumns. first }
3728 var tabType : TabType ?
3829
39- /// Capture current column widths and order from the live NSTableView
40- /// and persist directly to ColumnLayoutStorage. Called from dismantleNSView
41- /// to guarantee layout is saved even when the view is torn down without
42- /// a SwiftUI render cycle (e.g., closing a tab).
4330 func persistColumnLayoutToStorage( ) {
4431 guard tabType == . table else { return }
4532 guard let tableView, let connectionId, let tableName, !tableName. isEmpty else { return }
@@ -171,7 +158,6 @@ final class TableViewCoordinator: NSObject, NSTableViewDelegate, NSTableViewData
171158 }
172159 }
173160
174- /// Subscribe to coordinator teardown to release NSTableView cell views.
175161 func observeTeardown( connectionId: UUID ) {
176162 teardownObserver = NotificationCenter . default. addObserver (
177163 forName: MainContentCoordinator . teardownNotification,
@@ -184,8 +170,6 @@ final class TableViewCoordinator: NSObject, NSTableViewDelegate, NSTableViewData
184170 }
185171 }
186172
187- /// Release all data and cell views from the NSTableView.
188- /// Called during coordinator teardown to free memory while SwiftUI holds the view.
189173 private func releaseData( ) {
190174 overlayEditor? . dismiss ( commit: false )
191175 cachedTableRows = TableRows ( )
0 commit comments