我有一个主要的NSWindow是空的,还有5个NSView。 NSView具有不同的按钮和标签等,窗口为空。显示的第一个视图是一个菜单,链接到其他视图并返回。这样工作正常,视图切换良好。
然而,如果NSWindow是一定规模,并且NSView更大,那么它会从NSWindow溢出并被切断。
当我这样做时,有没有办法:
[_window setContentView: theNewView];
还要_window
调整大小以适应新视图?如果可以,可以用动画完成吗?
答案 0 :(得分:14)
-[NSWindow setContentSize:]
这样做(没有动画)。为其提供所需的内容视图大小,它将适当地调整内容视图和窗口的大小,例如
[_window setContentSize:theNewView.frame.size];
[_window setContentView:theNewView];
对于动画,您需要使用frameRectForContentRect:
手动计算窗口大小,然后使用animate:YES
更改窗口的框架:
[_window setContentView:theNewView];
NSRect viewScreenFrame = /*translate theNewView.frame to screen coordinates*/;
NSRect wndFrame = [_window frameRectForContentRect:viewScreenFrame];
[_window setFrame:wndFrame display:YES animate:YES];