В настоящих приложениях иерархия представлений может быть сложной, и это действительно помогает иметь возможность помещать разные представления в разные наконечники. Я следую примеру проекта InfoBarStackView, они дают действительно хороший пример того, как использовать новый класс NSStackView, в котором размещаются разные представления. Они создают DisclosureViewController
, который отвечает за размещение представления контента, изменяя его размер, чтобы он мог переходить из открытого состояния в закрытое.
Вот упрощенный пример. У нас есть два отдельных пера:
DisclosureViewController
ContentViewController
Каков самый простой способ загрузить представление содержимого внутри представления заполнителя представления раскрытия? Можно ли это сделать только в IB?
В настоящее время мой AppDelegate имеет много избыточности, потому что ему нужно хранить ссылки на оба контроллера представления. Интересно, есть ли способ упростить ситуацию? В этом простом примере AppDelegate будет загружаться из двух разных перьев, используя такой код:
// In AppDelegate.m
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[_disclosureView1.view replaceSubview:_disclosureView1.placeholder with:_contentView1.view];
[(NSView*)_window.contentView addSubview:_disclosureView1.view];
}