2012-08-29 5 views
1

Comment savoir si un NSDocument est neuf?Vérifiez si NSDocument est nouveau

J'utilise actuellement fileURL != nil mais je n'ai trouvé aucun endroit dans la documentation qui le confirme.

En outre, fileURL renvoie nil dans les documents restaurés (après avoir quitté l'application sans enregistrer, puis réouverture de l'application). Est-il possible de différencier un nouveau document d'un document restauré?

+0

Pourquoi avez-vous besoin de cela? – Sven

+0

Si c'est nouveau, j'ai besoin de montrer une fenêtre différente. Si elle est restaurée, j'ai besoin de désactiver certaines fonctionnalités. – hpique

+0

Par "restauré", voulez-vous dire que l'utilisateur l'affiche dans le navigateur Versions? Ou en réalité après, quand un document a été restauré à partir du navigateur? –

Répondre

0

Par essais et erreurs:

- (BOOL) readFromURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError *__autoreleasing *)outError { 
    self.isNew = NO; // New documents don't call this method 

    BOOL success = [super readFromURL:url ofType:typeName error:outError]; 

    // This must go after calling super 
    self.isSaved = self.fileURL != nil; // Saved documents set fileURL 
    self.isUnsaved = self.fileURL == nil; // Unsaved/restored documents don't set fileURL. The url parameter points to a temporary folder. 

    return success; 
}