【问题标题】:Prevent iCloud open file dialog from appearing on startup in OS X [duplicate]防止在 OS X 中启动时出现 iCloud 打开文件对话框 [重复]
【发布时间】:2015-12-06 02:29:03
【问题描述】:

当您在 Mac 上打开一个启用了 iCloud 的基于文档的应用程序而没有任何当前打开的文档时,将出现打开文件对话框。你如何防止打开文件对话框出现在启动时?我有一个我更喜欢显示的欢迎屏幕。

【问题讨论】:

  • 我认为如果上次退出时没有打开任何文档,基于文档的应用程序会在启动时打开一个新文档.. ?
  • 我没有意识到这是相关的,但它只发生在启用 iCloud 的情况下。
  • 很遗憾没有我可以使用的解决方案。

标签: objective-c macos


【解决方案1】:

为了验证您的说法,我在 XCode 中创建了一个新的基于文档的应用程序项目并运行它。我没有打开文件对话框!我确实打开了一个空白的新文档。这是你的意思吗?我找不到任何有据可查的方法来禁止打开这个初始空白文档。我使用 Document 类的初始化程序通过以下 hack 设法抑制了这种行为:

- (instancetype)init {
    self = [super init];
    if (self) {
        // Add your subclass-specific initialization here.
    }
    NSLog(@"Document init");
    if (alreadysuppressed)
        return self;
    alreadysuppressed = 1;
    return nil;
}

如您所见,它使用一个变量(此处称为“已经抑制”)来记住抑制是否已经完成,因此每次应用程序运行都会完成一次。我知道这是一个 hack,但它适用于基于通用文档的应用程序。 如果您真的得到文件打开对话框而不是上述行为,那么我建议在您的应用程序委托类中添加类似的 hack:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
    NSLog(@"applicationShouldOpenUntitledFile: %d", alreadysuppressed);
    if (! alreadysuppressed) {
        alreadysuppressed = 1;
        return NO;
    }
    return YES;
}

虽然我无法测试这种情况,因为我没有在基于通用文档的应用程序中获得文件打开对话框。

【讨论】:

  • 我在上面做了一些修改。我没有意识到这只发生在启用 iCloud 的情况下,这就是我的情况。
猜你喜欢
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
相关资源
最近更新 更多