我的 NSWindow 的 contentView 是 NSView 子类。它还有一些其他 NSView 子类作为子视图。子视图是基于图层的,而这些图层又包含子图层。一些子层具有另外的子子层。
我希望在调整窗口大小时,整个内容也按比例调整大小。正确的设置方法是什么?
Thanks
编辑:我根本不使用 Interface Builder。
以下是我为使 NSView 的内容在调整父窗口大小时按比例缩放所做的工作。首先,在界面生成器中,我将 NSView 添加到窗口,然后在 AppDelegate 中添加对它的引用。我的恰好被称为scrollView
。我从中删除了所有自动调整大小的行为scrollView
.
然后,在我的 AppDelegate 中我添加了以下内容:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// keep the aspect ratio constant so that the content looks good
[window setContentAspectRatio:NSMakeSize(2, 1)];
window.delegate = self;
}
- (void)windowDidResize:(NSNotification *)notification {
// size the scrollView to fill the window, but keep its bounds constant
NSRect rect = [[window contentView] frame];
NSRect oldBounds = [scrollView bounds];
[scrollView setFrame:rect];
[scrollView setBounds:oldBounds];
}
这也将 AppDelegate 变成了窗口委托。好吧,因为我没有太多逻辑。通过在更改框架时保持边界不变,scrollView
将会顺利缩小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)