Je crée une application Cocoa qui utilise le paquet document (bundle) comme données. J'ai spécifié une extension et le Finder reconnaît maintenant le dossier avec l'extension comme un document. Mais l'extension du dossier est toujours affichée, et je veux la cacher par défaut (comme le paquet d'application) Y at-il une option pour le faire?Comment rendre le type de package de document Cocoa avec son extension cachée par défaut?
1
A
Répondre
3
Vous pouvez utiliser la méthode -setAttributes:ofItemAtPath:error:
de NSFileManager
pour définir les attributs de fichier de n'importe quel fichier. Dans ce cas, vous voulez définir la valeur de la clé NSFileExtensionHidden
.
Pour appliquer à votre document enregistré, vous pouvez remplacer -writeToURL:ofType:error:
dans votre sous-classe NSDocument
puis définissez l'extension de fichier caché une fois que le document est enregistré:
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
{
//call super to save the file
if(![super writeToURL:absoluteURL ofType:typeName error:outError])
return NO;
//get the path of the saved file
NSString* filePath = [absoluteURL path];
//set the file extension hidden attribute to YES
NSDictionary* fileAttrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:NSFileExtensionHidden];
if(![[NSFileManager defaultManager] setAttributes:fileAttrs
ofItemAtPath:filePath
error:outError])
{
return NO;
}
return YES;
}
Merci! Est-ce une approche par fichier ou une approche par type (ou extension)? Est-ce impossible de définir le comportement par défaut de mon type de fichier? – Eonil
Ceci est par fichier, il définit un attribut étendu sur le fichier. Je ne pense pas qu'il existe un moyen de définir cela globalement. –