У меня возникли проблемы с изменением размера NSWindow в соответствии с NSView. Это должна быть логическая ошибка, поскольку она работает, но не для одного действия.NSWindow без изменения размера для NSView - ИНОГДА?
У меня есть один NSWindow, который пуст, и 3 NSViews с компонентами и разных размеров.
С помощью следующего кода я изменить размер NSWindow, чтобы соответствовать NSView и отобразить его:
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
Этот код работает отлично.
Однако в одном NSView у меня есть кнопка «Назад», и пока это отображает правильный NSView в NSWindow, он не изменяет его размер. В качестве примера начальное окно имеет определенный размер, я нажимаю, чтобы переключиться на другое представление, и оно правильно изменилось, я нажимаю кнопку «Назад», отображается NSView, но окно остается того же размера?
Может ли кто-нибудь объяснить мне, почему, когда я возвращаюсь к исходному NSView, он не изменяет размер NSWindow?
Заранее благодарен всем. Это полный код, который у меня есть:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
}
- (IBAction)switchSubtractionView:(id)sender {
[_window setContentSize:_subtractionView.frame.size];
[_window setContentView:_subtractionView];
}
- (IBAction)switchAdditionView:(id)sender {
[_window setContentSize:_additionView.frame.size];
[_window setContentView:_additionView];
}
// -----------------------------------------------------------------------
// THE FOLLOWING METHOD DISPLAYS THE NEW VIEW CORRECTLY BUT DOESN'T RESIZE
// -----------------------------------------------------------------------
- (IBAction)switchMainMenu:(id)sender {
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
}
Заранее благодарен всем.
EDIT: мне кажется, что при получении VIEW.frame.size, если это многократно используется, оно теряет свои значения? Это кажется мне очень странным поведением?
Большое спасибо за ответ, но у меня возникли проблемы с пониманием того, что вы имеете в виду. У меня есть _mainView, _additionView и т. Д., Установленные как NSViews, как мне создать новый одноразовый NSView? Еще раз спасибо – Cristian
'NSView * view = [[NSView alloc] initWithSize: someSize];' –
, если я правильно понимаю ответ, я создаю новый NSView с размером по умолчанию, а затем измените представление на вид, который я хочу, а затем измените размер? – Cristian