@@ -15,8 +15,9 @@ struct SplitViewControllerView: NSViewControllerRepresentable {
1515 @Binding var viewController : ( ) -> SplitViewController ?
1616
1717 func makeNSViewController( context: Context ) -> SplitViewController {
18- let controller = SplitViewController ( axis: axis)
19- updateItems ( controller: controller)
18+ let controller = SplitViewController ( axis: axis) { controller in
19+ updateItems ( controller: controller)
20+ }
2021 return controller
2122 }
2223
@@ -65,7 +66,7 @@ struct SplitViewControllerView: NSViewControllerRepresentable {
6566 }
6667
6768 func makeCoordinator( ) -> SplitViewController {
68- SplitViewController ( axis: axis)
69+ SplitViewController ( axis: axis, setUpItems : nil )
6970 }
7071}
7172
@@ -75,9 +76,9 @@ final class SplitViewController: NSSplitViewController {
7576 var customDividerStyle : CodeEditDividerStyle = . system( . thin) {
7677 didSet {
7778 switch customDividerStyle {
78- case . system( let dividerStyle, _ ) :
79+ case . system( let dividerStyle) :
7980 self . dividerStyle = dividerStyle
80- case . thick :
81+ case . editorDivider :
8182 return
8283 }
8384 }
@@ -93,34 +94,23 @@ final class SplitViewController: NSSplitViewController {
9394 }
9495
9596 override var dividerColor : NSColor {
96- if let customColor = customDividerStyle. color {
97- return customColor
98- }
99-
100- switch customDividerStyle {
101- case . system:
102- return super. dividerColor
103- case . thick:
104- return NSColor . separatorColor
105- }
97+ customDividerStyle. customColor ?? super. dividerColor
10698 }
10799
108100 override var dividerThickness : CGFloat {
109- switch customDividerStyle {
110- case . system:
111- return super. dividerThickness
112- case . thick:
113- return 3.0
114- }
101+ customDividerStyle. customThickness ?? super. dividerThickness
115102 }
116103 }
117104
118105 var items : [ SplitViewItem ] = [ ]
119106 var axis : Axis
120107 var parentView : SplitViewControllerView ?
121108
122- init ( axis: Axis ) {
109+ var setUpItems : ( ( SplitViewController ) -> Void ) ?
110+
111+ init ( axis: Axis , setUpItems: ( ( SplitViewController ) -> Void ) ? ) {
123112 self . axis = axis
113+ self . setUpItems = setUpItems
124114 super. init ( nibName: nil , bundle: nil )
125115 }
126116
@@ -136,6 +126,7 @@ final class SplitViewController: NSSplitViewController {
136126 override func viewDidLoad( ) {
137127 super. viewDidLoad ( )
138128 splitView. isVertical = axis != . vertical
129+ setUpItems ? ( self )
139130 DispatchQueue . main. async { [ weak self] in
140131 self ? . parentView? . viewController = { [ weak self] in
141132 self
@@ -147,6 +138,11 @@ final class SplitViewController: NSSplitViewController {
147138 false
148139 }
149140
141+ override func splitView( _ splitView: NSSplitView , shouldHideDividerAt dividerIndex: Int ) -> Bool {
142+ guard items. count > 1 else { return false }
143+ return super. splitView ( splitView, shouldHideDividerAt: dividerIndex)
144+ }
145+
150146 func setDividerStyle( _ dividerStyle: CodeEditDividerStyle ) {
151147 guard let splitView = splitView as? CustomSplitView else {
152148 return
0 commit comments