我正在创建一个 OS X 应用程序,并且我在 Web 视图中有一个视频播放器,它覆盖了窗口的 100% 的高度和宽度。播放器的格式为 16:9,加上广告和播放器控件的高度为 92px。
所以我想设置窗口的纵横比,这样当用户调整窗口大小时,视频的纵横比保持不变,包括额外的 92px 高度。
目前,我用过;
[window setAspectRatio:window.frame.size];
但显然这也成比例地增加了 92px 常数,从而改变了视频播放器的纵横比。
有人可以帮我吗?
我正在创建一个 OS X 应用程序,并且我在 Web 视图中有一个视频播放器,它覆盖了窗口的 100% 的高度和宽度。播放器的格式为 16:9,加上广告和播放器控件的高度为 92px。
所以我想设置窗口的纵横比,这样当用户调整窗口大小时,视频的纵横比保持不变,包括额外的 92px 高度。
目前,我用过;
[window setAspectRatio:window.frame.size];
但显然这也成比例地增加了 92px 常数,从而改变了视频播放器的纵横比。
有人可以帮我吗?
这就像将对象设置为窗口的委托并实现一样简单windowWillResize:toSize:
。窗口通过了它建议的新大小;委托可以返回不同的大小,窗口将使用它。
- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
{
CGFloat newWidth = frameSize.width;
CGFloat newHeight = ((newWidth / 16) * 9) + 92;
return (NSSize){newWidth, newHeight};
}