我希望有一个NSWindow,它在打开时具有2:1的宽高比,但在全屏时允许它有任何比例。
我最初在AppDelegate
中设置内容比率,如下所示:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[self window] setContentAspectRatio:NSMakeSize(2, 1)];
}
然后在窗口NSWindowDelegate
中设置并恢复它,如下所示:
- (void)windowWillEnterFullScreen:(NSNotification *)notification
{
NSWindow *window = [notification object];
[window setContentResizeIncrements:NSMakeSize(1, 1)];
}
- (void)windowDidExitFullScreen:(NSNotification *)notification
{
NSWindow *window = [notification object];
[window setContentAspectRatio:NSMakeSize(2, 1)];
}
我认为这有效,但我不确定AppDelegate
是否是设置窗口大小的正确位置。我已经尝试在windowDidLoad:
的行上查找窗口委托上的方法,但我看不出哪个方法适用。理想情况下,我只在一个地方设置内容比率。
我应该把每个窗口的初始化代码放在哪里?
答案 0 :(得分:0)
使用windowController可能更简洁(如果您只使用默认值,则创建一个子类)。您可以将窗口设置为委托(并输入您拥有的输入/退出代码),并在windowDidLoad中控制窗口的初始大小: