【问题标题】:macOS, changing the size of a view controller by draggingmacOS,通过拖动更改视图控制器的大小
【发布时间】:2020-01-01 18:34:58
【问题描述】:

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

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

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

为什么这样的事情应该默认工作,却没有按预期工作?可以做些什么来完成这项工作?

例子:

这是主应用程序。

我可以拖动它的角并使其变大或变小。我可以点击绿色信号灯,让它全屏显示,效果很好。

当我按下Help 图标时,会出现这个“窗口”。它是一个添加故事板的 viewController。

这无法缩放。它“看起来”是一个窗口,因为它包含一个信号量。我无法缩放它,但我可以通过绿色信号量使其全屏显示。


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

【问题讨论】:

  • 如果有截图和更详尽的解释,您的问题会更清楚。
  • 我在问题中添加了更多信息。谢谢。
  • 仅供参考,它不是“信号量”,它只是一个按钮,特别是窗口的缩放按钮。

标签: macos cocoa mouseevent nsview nsviewcontroller


【解决方案1】:

找到问题了。

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

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

然后我发现我做不到

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

awakeFromNib内。

现在可以完美运行了。

【讨论】:

    【解决方案2】:

    “应用程序本身可以改变大小”——你的意思是用户可以调整窗口的大小。

    “但是显示电影的 VC 不能” –– 同样在这种情况下,您不是在尝试调整视图控制器的大小,而是在尝试调整 窗口 的大小。该窗口包含您的视图控制器。

    窗口无法调整大小的原因可能是由于布局约束。我想在视图层次结构中一定有约束,它指定视频播放器(或其他视图)具有特定的宽度和高度。因为它是一个常数值,所以窗口不能调整大小。

    【讨论】:

    • 我在问题中添加了更多信息。谢谢。
    猜你喜欢
    • 2013-11-21
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多