2012-03-06 6 views

答えて

2

のMac OS X v10.7以降では:

- (void)setDisplayName:(NSString *)displayNameOrNil 

は10.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の両方で動作します。ファイルがまだUntitled.extとして保存されていないことを確認するには、fileURL:pathがnilでないことをテストします。 – jkcl

+0

これは、使用する必要がある表示名がすぐにわからない場合に便利です。たとえば、私のアプリは、タイトルなしのドキュメントの表示名をドキュメント内のタイトルフィールドと一致するように設定します。保存された文書は実際のファイル名を表示します。 '-defaultDraftName'は用途がありますが、柔軟性はありません。 –