NSSplitView — принудительное обновление экрана после setVertical: ДА или setVertical: НЕТ

#objective-c #cocoa

#objective-c #какао

Вопрос:

Я использую NSSplitView с кнопкой переключения, которая должна переключать разделение между вертикальным и горизонтальным макетами.

Поскольку setVertical: ищет BOOL, переключить ориентацию довольно просто:

     [splitView setVertical:![splitView isVertical]];
  

Часть, которая заставляет меня чесать голову до костей, заключается в том, что она не будет перерисовывать экран, ПОКА я физически не изменю размер окна приложения … ???

Чтобы, надеюсь, перерисовать экран, я пробовал: [view display]; , [view displayIfNeeded]; , [splitView displayIfNeeded]; и десятки других вещей, но безрезультатно.

Что я здесь делаю не так?

Ответ №1:

Это сработало для меня:

 [splitView setVertical:![splitView isVertical]];
[splitView adjustSubviews];