设置 NSWindow 的初始位置仅在第一次有效

dav*_*vis 2 macos nswindow

我试图将 NSWindow 设置为屏幕中央,但我注意到当我退出并重新打开应用程序时,它会采用应用程序关闭时窗口所在的位置。这是预期的行为吗?

Mar*_*k H 5

如果您选择了“可恢复”窗口行为,那么这是正确的行为。 可恢复

您可以通过取消选中可恢复来禁用此功能,并将自动保存名称留空。

您的应用程序将状态保存到“~/Library/Saved Application State/com.identifier.appName.savedState”文件夹中并在启动时加载 保存的应用程序状态

还有一个隐藏的技巧可以提供帮助:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
  [[NSUserDefaults standardUserDefaults] setObject:@NO forKey:@"NSQuitAlwaysKeepsWindows"];
}
Run Code Online (Sandbox Code Playgroud)