@@ -9,11 +9,12 @@ import SwiftUI
99
1010struct SplitViewControllerView : NSViewControllerRepresentable {
1111
12+ var axis : Axis
1213 var children : _VariadicView . Children
13- var viewController : SplitViewController
14+ @ Binding var viewController : ( ) -> SplitViewController ?
1415
1516 func makeNSViewController( context: Context ) -> SplitViewController {
16- return viewController
17+ context . coordinator
1718 }
1819
1920 func updateNSViewController( _ controller: SplitViewController , context: Context ) {
@@ -58,15 +59,21 @@ struct SplitViewControllerView: NSViewControllerRepresentable {
5859 }
5960 }
6061 }
62+
63+ func makeCoordinator( ) -> SplitViewController {
64+ SplitViewController ( parent: self , axis: axis)
65+ }
6166}
6267
6368final class SplitViewController : NSSplitViewController {
6469
6570 var items : [ SplitViewItem ] = [ ]
6671 var axis : Axis
72+ var parentView : SplitViewControllerView
6773
68- init ( axis: Axis = . horizontal) {
74+ init ( parent : SplitViewControllerView , axis: Axis = . horizontal) {
6975 self . axis = axis
76+ self . parentView = parent
7077 super. init ( nibName: nil , bundle: nil )
7178 }
7279
@@ -77,6 +84,11 @@ final class SplitViewController: NSSplitViewController {
7784 override func viewDidLoad( ) {
7885 splitView. isVertical = axis != . vertical
7986 splitView. dividerStyle = . thin
87+ DispatchQueue . main. async { [ weak self] in
88+ self ? . parentView. viewController = { [ weak self] in
89+ self
90+ }
91+ }
8092 }
8193
8294 override func splitView( _ splitView: NSSplitView , shouldHideDividerAt dividerIndex: Int ) -> Bool {
0 commit comments