gpt4 book ai didi

objective-c - 调整 NSWindow 的大小以适应子 NSView

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:28 25 4
gpt4 key购买 nike

我有一个空的主 NSWindow 和 5 个 NSView。 NSViews 有不同的按钮和标签等,窗口是空的。显示的第一个 View 是一个菜单,链接到其他 View 并返回。这工作正常, View 切换也很好。

但是,如果 NSWindow 有一定大小,而 NSView 更大,那么它会溢出 NSWindow 并被截断。

有什么办法可以让我这样做:

[_window setContentView: theNewView];

还要调整 _window 的大小以适应新 View ?如果可能的话,可以用动画来完成吗?

最佳答案

-[NSWindow setContentSize:] 这样做(没有动画)。给它所需的内容 View 大小,它会适本地调整内容 View 和窗口的大小,例如

[_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];

关于objective-c - 调整 NSWindow 的大小以适应子 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10177882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com