2016-10-15 16 views
0

У меня есть класс, который наследует от NSSplitViewController и переопределяет функцию splitViewDidResizeSubviews.Collapsing NSSplitViewItem не вызывает splitViewDidResizeSubviews

Когда я звоню коллапс на NSSplitViewItem внутри NSSplitViewController и я вижу NSSplitViewItem заметно изменить размер функции splitViewDidResizeSubviews не называется.

Если я изменяю размер окна, вызывается функция splitViewDidResizeSubviews, поэтому я знаю, что она выполнена правильно.

Могу ли я ожидать, что функция splitViewDidResizeSubviews будет вызвана на крах, и если да, то что я могу сделать неправильно?

ответ

1

Поскольку свертывание splitViewItem не изменяет размер фактического кадра, а просто изменяет видимость элемента. РазделениеViewItem содержит размер кадра, если вы просто переключаете статус isCollapsed.

(Исключением является, когда элемент расширяется наружу именно splitViewItem.collapseBehavior = .preferResizingSplitViewWithFixedSiblings Как я проверил, он вызывает splitViewDidResizeSubviews...)

Так что для такого использования Я предпочитаю, чтобы переопределить другой метод NSSplitViewController например:

func splitView(_ splitView: NSSplitView, shouldCollapseSubview subview: NSView, forDoubleClickOnDividerAt dividerIndex: Int 
+0

К сожалению, 'shouldCollapseSubview' не соответствует моим требованиям, когда я уведомлен и ни один из других методов в' NSSplitViewController', поэтому я просто добавил больше логики к кнопке, которая вызывает крах и разворачивает и включает транзакцию, поэтому я знаю, аниматор закончен. – zode64