3

編輯:它似乎像下面的問題只發生(而不是發生... :)當我運行從Xcode(我在4.4),而不是從Finder。這是一個Xcode錯誤,還是我錯過了什麼?如何在沒有文件恢復的情況下自動創建新的NSDocument?

我想創建一個新的(未命名的)NSDocument當應用程序啓動,在沒有文檔被自動恢復的情況下。 TextEdit和Safari都顯示我想要的行爲,所以它看起來應該是內置的,但我找不到任何選項。

重現我的問題的步驟:如果我在Xcode中創建一個新的基於文檔的應用程序並運行它,它第一次運行它確實會創建一個無標題的文檔。但是,如果我關閉該文檔,退出應用程序並再次運行它,它不會給我一個新文檔,除非我明確地單擊Dock中的應用程序圖標。這與例如不同TextEdit,如果你退出並重新啓動,你將得到一個新的空文檔。 (如預期的那樣,更改包標識符給了我另一個新的無標題文檔。)

我的第一個想法是,也許這應該發生在applicationDidFinishLaunching:,但事實證明,該方法在任何先前打開的文檔被恢復之前執行。

回答

4

此行爲是文檔體系結構的一部分。您的應用程序委託應該實現協議NSApplicationDelegate

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender; 
{ 
    return YES; 
} 

以下方法你會發現更多有關這個here

+0

正如我在編輯中所說的,這個問題只發生在從Xcode運行時。 'applicationShouldOpenUntitledFile:'已經按照你的建議完全實現了。 –

+0

@justink。啊,好的......現在我明白了。好的第一反饋我可以在MacOS 10.8上重現它。但只有當applicationShouldTerminateAfterLastWindowClosed返回NO – Stephan

相關問題