// // PreferencesController.swift // Persephone // // Created by Daniel Barber on 2019/2/23. // Copyright © 2019 Dan Barber. All rights reserved. // import Cocoa class PreferencesViewController: NSTabViewController { private lazy var tabViewSizes: [String : NSSize] = [:] override func viewDidLoad() { if let viewController = self.tabViewItems.first?.viewController, let title = viewController.title { tabViewSizes[title] = viewController.view.frame.size } super.viewDidLoad() } // override func transition(from fromViewController: NSViewController, to toViewController: NSViewController, options: NSViewController.TransitionOptions, completionHandler completion: (() -> Void)?) { // NSAnimationContext.runAnimationGroup({ context in // context.duration = 0.5 // self.updateWindowFrameAnimated(viewController: toViewController) // super.transition( // from: fromViewController, // to: toViewController, // options: [.crossfade, .allowUserInteraction], // completionHandler: completion // ) // }, completionHandler: nil) // } // // func updateWindowFrameAnimated(viewController: NSViewController) { // guard let title = viewController.title, let window = view.window // else { return } // // let contentSize: NSSize // // if tabViewSizes.keys.contains(title) { // contentSize = tabViewSizes[title]! // } else { // contentSize = viewController.view.frame.size // tabViewSizes[title] = contentSize // } // // let newWindowSize = window.frameRect(forContentRect: NSRect(origin: NSPoint.zero, size: contentSize)).size // // var frame = window.frame // frame.origin.y += frame.height // frame.origin.y -= newWindowSize.height // frame.size = newWindowSize // window.animator().setFrame(frame, display: false) // } }