macOS,通过拖动更改视图控制器的大小

macOS, changing the size of a view controller by dragging

用户单击一个按钮,我将新的 viewController 显示为 show

在那个 VC 里面有一个 AVPlayerView,和 VC 一样大。

如果用户拖动应用程序的任何角落,应用程序本身可以改变大小,但显示电影的 VC 不能。

为什么默认情况下应该可以正常工作的东西却没有按预期工作?可以做些什么来完成这项工作?

示例:

这是主应用程序。

我可以拖动它的角,使它变大或变小。我可以单击绿色信号灯并将其设为全屏,而且效果很好。

当我按下 Help 图标时,会出现此 "window"。它是添加到情节提要中的 viewController。

这无法缩放。它 "appears" 是一个 window,因为它包含一个信号量。我无法缩放它,但我可以通过绿色信号灯使其全屏显示。


注意:我已将视图添加到 WindowController,现在当用户按下 Help 按钮时,此 window 控制器将启动并显示视频。没变化。无法缩放视频。

"The app itself can change size" –– 您的意思是 window 可以由用户调整大小。

"but the VC displaying the movie cannot" –– 同样在这种情况下,您不是在尝试调整视图控制器的大小,而是在尝试调整 window 的大小. window 包含您的视图控制器。

window 无法调整大小的原因可能是布局限制。我想在视图层次结构中的某处必须有约束,它指定视频播放器(或其他视图)具有特定的宽度和高度。因为它是一个常量值,所以 window 无法调整大小。

找到问题了。

  1. 我必须添加一个 window 控制器来控制该视图控制器。

即使在 #1 之后视图控制器也没有调整大小。

然后我发现我不能

self.preferredContentSize = CGSize(width: 940,height: 504)

里面 awakeFromNib.

现在完美运行了。