@@ -110,6 +110,8 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate {
110
110
inspector. isCollapsed = true
111
111
inspector. canCollapse = true
112
112
inspector. collapseBehavior = . useConstraints
113
+ inspector. isSpringLoaded = true
114
+
113
115
splitVC. addSplitViewItem ( inspector)
114
116
115
117
self . splitViewController = splitVC
@@ -222,27 +224,6 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate {
222
224
super. windowDidLoad ( )
223
225
}
224
226
225
- @objc func toggleFirstPanel( ) {
226
- guard let firstSplitView = splitViewController. splitViewItems. first else { return }
227
- firstSplitView. animator ( ) . isCollapsed. toggle ( )
228
- if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
229
- codeEditSplitVC. saveNavigatorCollapsedState ( isCollapsed: firstSplitView. isCollapsed)
230
- }
231
- }
232
-
233
- @objc func toggleLastPanel( ) {
234
- guard let lastSplitView = splitViewController. splitViewItems. last else { return }
235
- lastSplitView. animator ( ) . isCollapsed. toggle ( )
236
- if lastSplitView. isCollapsed {
237
- window? . toolbar? . removeItem ( at: 4 )
238
- } else {
239
- window? . toolbar? . insertItem ( withItemIdentifier: . itemListTrackingSeparator, at: 4 )
240
- }
241
- if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
242
- codeEditSplitVC. saveInspectorCollapsedState ( isCollapsed: lastSplitView. isCollapsed)
243
- }
244
- }
245
-
246
227
private func getSelectedCodeFile( ) -> CodeFileDocument ? {
247
228
workspace? . tabManager. activeTabGroup. selected? . fileDocument
248
229
}
@@ -303,6 +284,38 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate {
303
284
}
304
285
}
305
286
287
+ extension CodeEditWindowController {
288
+ @objc
289
+ func toggleFirstPanel( ) {
290
+ guard let firstSplitView = splitViewController. splitViewItems. first else { return }
291
+ firstSplitView. animator ( ) . isCollapsed. toggle ( )
292
+ if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
293
+ codeEditSplitVC. saveNavigatorCollapsedState ( isCollapsed: firstSplitView. isCollapsed)
294
+ }
295
+ }
296
+
297
+ @objc
298
+ func toggleLastPanel( ) {
299
+ guard let lastSplitView = splitViewController. splitViewItems. last else { return }
300
+
301
+ if lastSplitView. isCollapsed {
302
+ window? . toolbar? . insertItem ( withItemIdentifier: . itemListTrackingSeparator, at: 4 )
303
+ }
304
+ NSAnimationContext . runAnimationGroup { _ in
305
+ lastSplitView. animator ( ) . isCollapsed. toggle ( )
306
+ } completionHandler: { [ weak self] in
307
+ if lastSplitView. isCollapsed {
308
+ self ? . window? . animator ( ) . toolbar? . removeItem ( at: 4 )
309
+ }
310
+ }
311
+
312
+ if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
313
+ codeEditSplitVC. saveInspectorCollapsedState ( isCollapsed: lastSplitView. isCollapsed)
314
+ codeEditSplitVC. hideInspectorToolbarBackground ( )
315
+ }
316
+ }
317
+ }
318
+
306
319
extension NSToolbarItem . Identifier {
307
320
static let toggleFirstSidebarItem : NSToolbarItem . Identifier = NSToolbarItem . Identifier ( " ToggleFirstSidebarItem " )
308
321
static let toggleLastSidebarItem : NSToolbarItem . Identifier = NSToolbarItem . Identifier ( " ToggleLastSidebarItem " )
0 commit comments