1

在我的应用程序中,我有一个使用 AVPlayer 播放视频的主窗口。为了强制使用特定的纵横比,我使用了 setAspectRatio: 方法。我将它放在我的应用程序的 windowControllerDidLoadNib: 中,因此代码如下所示:

- (void)windowControllerDidLoadNib:(NSWindowController *)windowController
{
   [super windowControllerDidLoadNib:windowController];

   // adjust the player aspect ratio
   [windowController.window setAspectRatio:NSMakeSize(1.85,1)];
   ...
   ...
}

问题是在我调整窗口大小之前没有设置这个纵横比。

有谁知道这里可能存在什么问题?非常感谢任何帮助。

4

1 回答 1

2

窗口的aspectRatio大小是调整窗口大小时的约束*。所以,是的,在用户尝试这样做之前它没有任何效果。

您需要将窗口显式设置为frame大小具有该纵横比的矩形,并且您需要自己计算该矩形。

确保正确区分窗口的框架矩形、窗口的内容矩形(与窗口的内容视图大小相同)以及要播放的内容的大小。例如,您可能希望标题栏(它是框架的一部分)在该比率中除了“1”之外,而不是它的一部分。

*不是 NSLayoutConstraint 意义上的,只是一般意义上的。

于 2013-05-17T04:52:21.963 回答