Работа с представлениями в нескольких окнах - проблемы с removeFromSuperView при закрытии второго окна
Здравствуйте, у меня есть вид, который отображается при нажатии кнопки, это работает нормально, если я открываю второе окно, вид работает нормально, и я могу вернуться к предыдущему окну и использовать вид, как я использовал removeFromSuperview.
Однако моя проблема в том, что если я закрываю последнее открытое окно, представление больше не работает в первом окне, однако, если я открываю новое окно, оно снова работает в первом окне.
Как заставить вид продолжать работать, когда одно из окон было закрыто?
Спасибо за вашу помощь!
Вот код, который я использую:
-(IBAction) ShowView:(id) sender{
[myView setHidden:FALSE];
if ([myView isInFullScreenMode]){
[myView exitFullScreenModeWithOptions:nil];
}
else{
[myView enterFullScreenMode:[[myView window] screen] withOptions:nil];
for (NSView *view in [NSArray arrayWithArray:[myView subviews]]){
[view removeFromSuperview];
[myView addSubview:view];
}
}
}
1 ответ
Вы не указали, что означает "представление не работает", но я предполагаю, что оно не появляется, когда вы этого ожидаете.
Если вы показываете различные виды (то есть копии своего вида), связанные с различными окнами, каждый вид должен быть создан и уничтожен вместе с его окном.
Если вам нужен только один вид, который отображается с различными окнами или в разных окнах, вы должны создать вид в другом классе, например, в делегате приложения. Этот класс должен управлять содержимым представления независимо от классов, которые управляют любым окном.