关于Objective C:在启动时设置NSWindow的位置/大小,并且Lion全屏恢复=布局错误

Set NSWindow location/size on launch and Lion fullscreen resume = bad layout

我已经创建了一个应用程序,该应用程序最初在应用程序委托的applicationWillFinishLaunching:applicationDidFinishLaunching中存储和恢复窗口的大小和位置。

稍后,我将其替换为调用[NSWindow setFrameUsingName:],以便存储和加载窗口的位置和大小。

存储和加载都可以正常工作(使用自定义代码和setFrameUsingName)

但是现在出现问题:当我在应用程序上启用了全屏模式并使用"还原窗口"选项注销时。它将在单独的窗口中启动该应用程序以使其变为全屏,但随后再次调用我的代码以设置窗口size:,从而实际上在大全屏屏幕中显示一个小窗口。

似乎生命周期几乎以windowDidEnterFullScreen:调用结束。
applicationWillFinishLaunching:在窗口进入全屏状态之前被调用,而NSWindow \\的styleMask尚未在其中显示全屏。

有人能帮助我吗?


在应用程序启动期间由淡入动画引起的问题。
确保不要在应用程序委托的applicationWillFinishLaunching窗口中启动动画。


尝试在windowWillEnterFullScreen中设置一个标志,以使您的窗口不设置其大小。