Я пробовал все, о чем я могу думать, включая все предложения, которые я нашел здесь, на SO и в других списках рассылки, но я не могу понять, как программно свернуть область NSSplitView
с анимацией, когда включен автоматический макет.Как свернуть панель 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
})
}
Желаемое поведение и внешний вид является то, что Mail.app, который одушевляет действительно красиво.
У меня есть полный пример приложения, доступного по адресу https://github.com/mdiep/NSSplitViewTest.
Попробуйте отправить '-setPosition: ofDividerAtIndex:' в прокси-сервер анимации split. –
@KenThomases Я пробовал это. Нет кубиков. – mdiep