小编mdi*_*iep的帖子

如何在使用自动布局时使用动画折叠NSSplitView窗格?

我已经尝试了我能想到的所有内容,包括我在SO和其他邮件列表中找到的所有建议,但我无法弄清楚如何NSSplitView在启用"自动布局"时以编程方式折叠带有动画的窗格.

这就是我现在所拥有的(用Swift编写的乐趣),但它有多种方式:

@IBAction func toggleSourceList(sender: AnyObject?) {
    let isOpen = !splitView.isSubviewCollapsed(sourceList.view.superview!)
    let position = (isOpen ? 0 : self.lastWidth)

    if isOpen {
        self.lastWidth = sourceList.view.frame.size.width
    }

    NSAnimationContext.runAnimationGroup({ context in
        context.allowsImplicitAnimation = true
        context.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)
        context.duration = self.duration

        self.splitView.setPosition(position, ofDividerAtIndex: 0)
    }, completionHandler: { () -> Void in
    })
}
Run Code Online (Sandbox Code Playgroud)

期望的行为和外观是Mail.app,它的动画效果非常好.

我在https://github.com/mdiep/NSSplitViewTest上有一个完整的示例应用程序.

cocoa appkit nssplitview

7
推荐指数
2
解决办法
4674
查看次数

标签 统计

appkit ×1

cocoa ×1

nssplitview ×1