我无法调整 NSWindow 的大小以适应 NSView。它必须是一个逻辑错误,因为它有效但不是一个动作。
我有一个空的 NSWindow,以及 3 个带有组件且大小不同的 NSView。
使用以下代码调整 NSWindow 的大小以适合 NSView 并显示它:
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
这段代码工作正常。
然而,在一个 NSView 中,我有一个后退按钮,虽然这会在 NSWindow 中显示正确的 NSView,但它不会重新调整它的大小。例如,初始窗口是一定大小,我单击切换到另一个视图并正确调整大小,我按下后退按钮,显示 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];
}
提前谢谢大家。
编辑:在我看来,当获取 VIEW.frame.size 时,如果重复使用它,它会失去它的价值吗?这对我来说似乎很奇怪?