我在使用Autolayout时遇到了子视图无法正确调整大小的问题。为了说明我的观点,我制作了一个简单的示例。
首先,我创建了一个新的NSViewController,并添加了一个子视图(在这种情况下是NSTextView),并添加了Autolayout约束。
然后,我向MainMenu.xib添加了一个自定义视图,并为其设置了Autolayout约束。
最后,我创建了一个视图控制器的实例,并将其视图放入自定义视图中。
首先,我创建了一个新的NSViewController,并添加了一个子视图(在这种情况下是NSTextView),并添加了Autolayout约束。
然后,我向MainMenu.xib添加了一个自定义视图,并为其设置了Autolayout约束。
最后,我创建了一个视图控制器的实例,并将其视图放入自定义视图中。
#import "AppDelegate.h"
#import "MyViewController.h"
@interface AppDelegate()
@property (weak) IBOutlet NSView *customView;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.customView addSubview:myViewController.view];
myViewController.view.frame = self.customView.bounds;
}
@end
由于两个xib文件中都选中了“自动调整子视图”的选项,因此我希望当我调整主窗口大小时,NSTextView也会随之调整大小。但事实并非如此,它只是停留在原地。
我错过了什么?这已经让我困惑了几天。
谢谢, Michael Knudsen