2015-12-06 84 views
8

當您在沒有任何當前打開的文檔的情況下在Mac上打開基於iCloud的基於文檔的應用程序時,會出現打開的文件對話框。你如何防止在啓動時出現打開的文件對話框?我有一個我更喜歡顯示的歡迎屏幕。防止在OS X啓動時出現iCloud打開文件對話框

+0

我以爲基於文檔的應用程序會在啓動時打開一個新文檔,如果沒有文檔在上次退出時打開..? – insys

+0

我沒有意識到這是相關的,但它只發生在啓用iCloud。 –

+0

不幸的是,我不能在那裏使用解決方案。 –

回答

1

要驗證您的聲明,我在XCode中創建了一個基於文檔的新應用程序項目並運行它。我沒有打開文件對話框!儘管我打開了一個空白的新文檔。這是你的意思嗎?我找不到任何記載的方式來禁止打開此初始空白文檔。我設法抑制與下面的技巧這種行爲,使用您的文檔類的初始化:

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

正如你所看到的,它使用一個變量(稱爲「alreadysuppressed」這裏)要記住,如果抑制了已經完成了,所以它將在每次應用程序運行時完成一次。我知道這是一個黑客攻擊,但它適用於基於通用文檔的應用程序。 如果你真的得到了打開文件對話框,而不是上述行爲的話,我建議增加一個類似的黑客攻擊,您的應用程序委託類:

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

雖然因爲我沒有得到的文件打開我無法測試這種情景對話框在基於通用文檔的應用程序中

+0

我上面做了一些修改。我沒有意識到這隻發生在啓用iCloud的情況下,這是我的情況。 –

相關問題