【问题标题】:Cocoa How to remember the window position with multiple monitors?Cocoa 如何记住多个显示器的窗口位置?
【发布时间】:2015-07-30 18:24:20
【问题描述】:

要保存一个(主)监视器的窗口位置,我正在使用此代码:

[[win windowController] setShouldCascadeWindows:NO]; 
[win setFrameAutosaveName:@"My App"];

它工作正常。 但是,如果我连接第二台显示器并将我的应用程序窗口拖到第二台显示器,可可自动保存不起作用 - 重新启动后,窗口总是放在主(主)显示器上。 有任何想法吗? 谢谢!

【问题讨论】:

    标签: objective-c xcode macos cocoa nswindow


    【解决方案1】:

    为您的应用启用恢复:

    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
      [[NSUserDefaults standardUserDefaults] setObject:@YES forKey:@"NSQuitAlwaysKeepsWindows"];
    }
    

    将您的窗口设置为可在 Interface Builder 中恢复

    还要确保您没有在关闭时调用 invalidate。这只是承诺->您可能会以已删除状态结束应用程序

    [self.window invalidateRestorableState];
    

    验证/调试检查“~/Library/Saved Application State/yourbundleidentifier”的内容是否在重启后仍然存在。

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 2021-05-23
      相关资源
      最近更新 更多