2012-03-06 27 views

回答

2

在Mac OS X v10.7及更高版本:

- (void)setDisplayName:(NSString *)displayNameOrNil 

v10.6中,覆蓋在你的NSDocument子類:

- (BOOL)prepareSavePanel:(NSSavePanel *)savePanel 
{ 
    if([savePanel.nameFieldStringValue isEqualToString:@"Untitled"]) 
     [savePanel setNameFieldStringValue:@"hello"]; 

    return [super prepareSavePanel:savePanel]; 
} 

事實上默認的實現是空的,返回YES,以便能只是這樣做。

不知道有關測試的「無題」不過,如果他們已經保存爲「無題」,將無法正常工作,並希望保留這個名字,也許它不會本地化,所以也許設置一個標誌

- (id)initWithType:(NSString *)type error:(NSError **)error 

還是已經有一個?

+0

感謝您的建議。在v10.6和v10.7上執行此實現。測試fileURL:路徑爲非零以確保該文件尚未保存爲Untitled.ext。 – jkcl 2012-03-21 08:22:14

+0

當你不知道你應該使用的顯示名稱時,這很棒。例如,我的應用程序將無標題文檔的顯示名稱設置爲與文檔內的標題字段相匹配;當然,保存的文檔顯示實際的文件名。 '-defaultDraftName'有其用途,但它不具有相同的靈活性。 – 2013-04-14 23:58:24

相關問題