Swift 视图控制器分段的NSWindow过渡动画

Swift 视图控制器分段的NSWindow过渡动画,swift,swift3,nswindow,macos-sierra,nsviewcontroller,Swift,Swift3,Nswindow,Macos Sierra,Nsviewcontroller,我一直在想如何让NSWindow使用Swift 3执行过渡动画。我在Objective-C中找到了一些示例,但我还无法梳理出相关的细节,并将其翻译成目标语言/更新的SDK,并将其应用于正确的对象。这一款非常酷,但它已经有8年历史了:--我想现在在macOS Sierra用Swift有更好的方法来实现CGSCube效果 以下是我目前掌握的情况: class ViewController: NSViewController { func doAnimation() { if

我一直在想如何让NSWindow使用Swift 3执行过渡动画。我在Objective-C中找到了一些示例,但我还无法梳理出相关的细节,并将其翻译成目标语言/更新的SDK,并将其应用于正确的对象。这一款非常酷,但它已经有8年历史了:--我想现在在macOS Sierra用Swift有更好的方法来实现
CGSCube
效果

以下是我目前掌握的情况:

class ViewController: NSViewController {

    func doAnimation() {
        if let layer = view .layer {
            layer.backgroundColor = CGColor.black

            let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
            rotateAnimation.fromValue = 0.0
            rotateAnimation.toValue = CGFloat(CGFloat.pi * 2.0)
            rotateAnimation.duration = 10.0
            layer.add(rotateAnimation, forKey: nil)
        }
    }

    override func viewWillAppear() {
        if let window = self.view.window {
            window.styleMask = NSWindowStyleMask.borderless
            window.backingType = NSBackingStoreType.buffered
            window.backgroundColor = NSColor.clear
            window.isOpaque = false
            window.hasShadow = false
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        doAnimation()
    }
}
这根本不起作用。我在窗口上获得白色背景,而不是透明背景,并且我的视图在框架上滚动,而不是窗口框架本身被设置动画

理想情况下,我想做一些更高级的事情,比如这些3d转换-&但我不太确定如何在没有UIKit的情况下将示例从iOS SDK转换到macOS SDK。(令人烦恼的是,我记得几年前在ObjC中完成了这个项目,但项目在格式/新计算机之间的某个地方丢失了。)

在视图控制器之间切换时,如何将转换应用于NSWindow本身?任何关于增加3d效果的建议都将不胜感激。我希望有个椰子荚能让我走到一半