我試過了我能想到的所有東西,包括我在SO和其他郵件列表中找到的所有建議,但我無法弄清楚如何在自動佈局打開時以編程方式摺疊具有動畫的NSSplitView
窗格。如何使用自動佈局在動畫中摺疊NSSplitView窗格?
這就是我現在所擁有的(寫在斯威夫特的樂趣),但它以多種方式倒下:
@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
})
}
期望的行爲和外觀是Mail.app,其中動畫真的很好的。
我有一個完整的示例應用程序可在https://github.com/mdiep/NSSplitViewTest。
嘗試發送'-setPosition:ofDividerAtIndex:'到分割視圖的'animator'代理。 – 2014-10-31 03:30:40
@KenThomases我試過了。沒有骰子。 – mdiep 2014-10-31 12:13:36