【问题标题】:How to show a welcome screen at startup if no document is open when app starts?如果应用程序启动时没有打开文档,如何在启动时显示欢迎屏幕?
【发布时间】:2013-03-13 00:13:51
【问题描述】:

Xcode 有一个非常漂亮的屏幕,当您第一次启动它时会显示它;它会显示您最近的项目以及为您提供的资源,但仅当您在启动时没有打开文档时才会显示。我想要一个类似(虽然不太复杂)的欢迎屏幕。我已经设计了它并在一个 .nib 文件中,但我想知道当用户打开应用程序而没有以前打开的文档时,我将如何编写它。

这是我指的屏幕(显示我最近的项目):

【问题讨论】:

  • 我也希望对这种常见行为有一个明确的、与狮后兼容的、最佳实践的答案。 NSApplicationDelegate 已经这么复杂了,然后你就有了“恢复”、自动终止等等……

标签: objective-c macos cocoa


【解决方案1】:

我假设 OS X 的 [NSUserDefaults standardUserDefaults] 的工作方式与 iOS 相同,在这种情况下,您可以执行以下操作:

if (![[NSUserDefaults standardUserDefaults] objectForKey:@"opened"]) {
   //load your special view here; no documents have been opened;
}
else {
   //open up some previously opened document.
}

打开文档后,您可以执行以下操作:

[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"opened"]; //doesn't matter what you set as long as something is set.

然后,如果您想重置它(例如,如果所有文档都已关闭),您可以这样做:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"opened"];

【讨论】:

  • 什么都不做。 OS X 完全不同。如果你像我一样来自 iOS,一切都需要 100 倍的时间,你最终会在 Apple 的开发者库中打开 20 个打开的浏览器选项卡,试图弄清楚如何完成一项简单的任务......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多