调整NSWindow以适应孩子NSView
问题描述:
我有一个主要NSWindow是空的,5个NSViews。 NSViews有不同的按钮和标签等,窗口是空的。显示的第一个视图是一个菜单,链接到其他视图并返回。这工作正常,视图切换良好。调整NSWindow以适应孩子NSView
但是,如果NSWindow有一定的大小,并且NSView比较大,那么它会溢出NSWindow并被切断。
有什么办法,这样当我做的:
[_window setContentView: theNewView];
也有_window
调整大小以适应新的看法?如果这是可能的,这可以用动画来完成吗?
答
-[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];
出色的作品。我到处找,并没有发现什么,但答案很简单。谢谢! – Cristian 2012-04-16 19:34:04
有没有机会让我知道我是如何将视图转换为坐标的? – Cristian 2012-04-16 19:40:37
我想出来 - http://www.cocoabuilder.com/archive/cocoa/162049-flipping-over-coordinate-conversion.html再次感谢! – Cristian 2012-04-16 19:53:30