我在使用自动版式无法正确调整子视图大小时遇到麻烦。为了说明我的观点,我举了一个简单的例子。
首先,我创建了一个新的NSViewController并为其添加了一个子视图(在本例中为NSTextView),并添加了自动布局约束。
然后,我在MainMenu.xib中添加了一个自定义视图,并为此设置了自动布局约束。
最后,我创建了一个视图控制器实例,并将其视图放入自定义视图中。
#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)
NSTextView的包含视图对其父级没有任何约束,在本例中为您的窗口。您添加的视图不会调整大小,因为您的视图没有通过约束与其父视图“连接”。addConstraint:
如果要以编程方式执行此操作,则可能需要研究该方法。
有关更多信息,请参阅Apple的文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句