我正在拉扯我的头发试图弄清楚为什么我的观点没有随着我的NSWindow一直在调整大小。
好的,这是我的结构:
我正在将这些视图中的每一个添加到我的NSWindowController的自定义视图中。这是我文件中唯一相关的方法:
-(void)setActiveView:(NSString*) viewString{
if ([currentViewController view] != nil)
[[currentViewController view] removeFromSuperview];
if ([viewString isEqualToString:kFirstView]){
FirstViewController *viewController = [[FirstViewController alloc]initWithNibName:kFirstView bundle:nil];
if (viewController != nil){
currentViewController = viewController;
}
}
else if ([viewString isEqualToString:kSecondView]){
SecondViewController *viewController = [[SecondViewController alloc]initWithNibName:kSecondView bundle:nil];
if (viewController != nil){
currentViewController = viewController;
}
}
//Resize Controller to Window's size.
[[currentViewController view] setFrame:[myWindowView bounds]];
//Embed current view into Custom View in host view.
[myWindowView addSubview:[currentViewController view]];
}
当我更改视图时,调整大小的setFrame会起作用,但是当我拖动以调整窗口大小时则不行。据我所知,因为setFrame在我更改视图时起作用,唯一真正重要的(但不起作用)是我的NSWindowController中的自定义视图。
此外,这就是我向前推进此窗口的方式:
myController = [[MyWindowController alloc]initWithWindowNibName:@"MyWindow"];
[myController showWindow:nil];
是的,我已经尝试过我的initwithframe:
[myWindowView setAutoresizesSubviews:YES];
[myWindowView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
我错过了什么?
答案 0 :(得分:0)
尝试在没有自动布局的情况下执行此操作。
试试这个:
取消选中使用自动布局作为窗口。
转到尺寸检查器并按照以下步骤自动调整到您的视图: