2012-03-06 2 views

Répondre

2

Sous Mac OS X v10.7 et versions ultérieures:

- (void)setDisplayName:(NSString *)displayNameOrNil 

v10.6, override dans votre sous-classe NSDocument:

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

    return [super prepareSavePanel:savePanel]; 
} 

En fait, la mise en œuvre par défaut est vide et renvoie OUI pourrait donc fais juste ça.

Je ne sais pas sur les tests pour « Untitled » cependant, ne fonctionnera pas si elles ont déjà enregistré comme « sans titre » et que vous voulez garder ce nom, et peut-être il ne sera pas localiser, alors peut-être mettre un drapeau dans

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

ou y en a-t-il déjà une?

+0

Merci pour la suggestion. Aller pour cette implémentation sur les versions 10.6 et 10.7. Test de fileURL: le chemin doit être non nul pour s'assurer que le fichier n'est pas déjà enregistré en tant que Untitled.ext. – jkcl

+0

C'est génial quand vous ne connaissez pas immédiatement le nom d'affichage que vous devriez utiliser. Par exemple, mon application définit le nom d'affichage des documents sans titre pour correspondre à un champ de titre dans le document; Les documents sauvegardés montrent bien le nom du fichier. '-defaultDraftName' a ses utilisations, mais il n'a pas la même flexibilité. –

Questions connexes