Ответ 1
Пробовали ли вы настроить свой контроллер просмотра листа -preferredContentSize
? В противном случае, как добавить ширину и высоту NSLayoutConstraint
к виду контроллера просмотра на -viewDidLoad
?
Есть ли способ предотвратить изменение размера представления, если контроллер представления представлен в виде листа, используя метод presentViewControllerAsSheet или используя сегмент стиля "лист".
Обратите внимание, что модальные /show segues могут быть имплантированы в оконный контроллер, который может быть установлен как не изменяемый из самого раскадровки. Segues типа popover по умолчанию не изменяются по размеру.
Любая помощь будет заметна.
Пробовали ли вы настроить свой контроллер просмотра листа -preferredContentSize
? В противном случае, как добавить ширину и высоту NSLayoutConstraint
к виду контроллера просмотра на -viewDidLoad
?
приведенные выше методы не помогли мне.
self.view.autoresizesSubviews = NO;
эта строка в viewcontroller должна делать трюк, если вышеуказанные методы не работают
Ни один из других решений не работал у меня, поэтому я закончил использование NSWindow
в качестве контроллера листа (а не только NSViewController
).
Объявить объект NSWindowController
в файле заголовка:
NSWindowController *detailWindow;
Чтобы открыть окно в виде листа, используйте следующий код:
NSStoryboard *storyFile = [NSStoryboard storyboardWithName:@"Main" bundle:nil];
detailWindow = [storyFile instantiateInitialController];
[self.view.window beginSheet:detailWindow.window completionHandler:nil];
Чтобы закрыть окно:
[self.view.window endSheet:detailWindow.window];
Чтобы не изменять размер окна, просто установите минимальный/максимальный размер NSWindow
в построителе интерфейса:
Что это, супер легко! (Не забудьте установить оконный контроллер в качестве начального контроллера).