2

我正在创建一个 OS X 应用程序,并且我在 Web 视图中有一个视频播放器,它覆盖了窗口的 100% 的高度和宽度。播放器的格式为 16:9,加上广告和播放器控件的高度为 92px。

所以我想设置窗口的纵横比,这样当用户调整窗口大小时,视频的纵横比保持不变,包括额外的 92px 高度。

目前,我用过;

[window setAspectRatio:window.frame.size];

但显然这也成比例地增加了 92px 常数,从而改变了视频播放器的纵横比。

有人可以帮我吗?

4

1 回答 1

2

这就像将对象设置为窗口的委托并实现一样简单windowWillResize:toSize:。窗口通过了它建议的新大小;委托可以返回不同的大小,窗口将使用它。

- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize 
{
    CGFloat newWidth = frameSize.width;
    CGFloat newHeight = ((newWidth / 16) * 9) + 92;

    return (NSSize){newWidth, newHeight};
}
于 2011-11-15T20:49:59.520 回答