我有一个包含子视图的自定义 NSView——为了解决这个问题,顶层视图只是充当容器并自动调整大小以适应窗口。它的子视图从窗口边缘绘制一个 10 像素插入的矩形,底部除外,它应该被窗口剪裁,直到它被调整大小以显示整个矩形。但是,它并没有按照我的意图运行,而是在其父视图的高度小于它的高度时缩小矩形的高度。我如何避免这种情况并让它保持在适当的高度,而不是在超级视图较小时被剪裁?
父视图的实现代码为:
- (id)initWithFrame:(NSRect)frameRect {
self = [super initWithFrame:frameRect];
if (self) {
subView = [[SubView alloc] initWithFrame:frameRect];
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect {
[[NSColor grayColor] set];
[subView setFrame:NSMakeRect(10, 10, dirtyRect.size.width - 20, 500)];
[self addSubview:subView];
}
- (BOOL)isFlipped {
return YES;
}
子视图只是:
- (void)drawRect:(NSRect)dirtyRect {
[[NSColor blackColor] set];
[NSBezierPath strokeRect:dirtyRect];
}
- (BOOL)isFlipped {
return YES;
}