現在、windowWillResizeを使用して、ビューの1つに対するウィンドウの1つのアスペクト比を制御しています。ウィンドウのサイズを変更すると、サイズが変更されるたびにウィンドウがわずかに垂直方向に移動することを除いて、すべてが正常に機能しているように見えます。setContentAspectRatioを使用してもこれは生成されませんが、ウィンドウに他のビューがあるため、これはオプションではありません。
なぜ窓が動いているのか、そしてもっと重要なことに、それが予防可能であるかどうかについてのアイデアはありますか?コードは次のとおりです。
- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
{
NSRect windowFrame = [self.window frame];
NSRect viewRect = [self.screen convertRect:[self.screen bounds] toView: nil];
NSRect contentRect = [self.window contentRectForFrameRect:windowFrame];
float marginY = viewRect.origin.y + windowFrame.size.height - contentRect.size.height;
float marginX = contentRect.size.width - viewRect.size.width;
frameSize.height = (frameSize.width - marginX) * HEIGHT_DEFAULT / WIDTH_DEFAULT + marginY;
return frameSize;
}