Problème d'affichage d'icône
epetit91
Membre
<br />
[size=3]- (IBAction)TBLACreerBase:(id)sender<br />
{<br />
StructEntete entete;<br />
<br />
entete.champs1 = 0;<br />
entete.champs2 = 0;<br />
entete.champs3 = 0;<br />
entete.champs4 = 0;<br />
<br />
// Ouvre un dialogue de création d'une base (extension ".tblabase")<br />
NSSavePanel *panel = [NSSavePanel savePanel];<br />
[panel setRequiredFileType:@"tblabase"];<br />
<br />
// Positionne le masquage de l'extension à "Masquée"<br />
[panel setCanSelectHiddenExtension:TRUE];<br />
<br />
// Si la sélection est validée<br />
if (NSOKButton == [panel runModal])<br />
{<br />
// Création du fichier et initialisation de l'entête<br />
[[NSData dataWithBytes:&entete length:sizeof(entete)] writeToFile:[[panel filename] stringByExpandingTildeInPath] atomically:YES];<br />
<br />
// Masque/Affiche l'extension en fonction de l'état de la case à cocher du dialogue d'enregistrement<br />
NSDictionary *masqueAttrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:[panel isExtensionHidden]] forKey:NSFileExtensionHidden];<br />
[[NSFileManager defaultManager] setAttributes:masqueAttrs ofItemAtPath:[[panel filename] stringByExpandingTildeInPath] error:nil];<br />
[/size]<br />
[size=3] // Définit le créateur et le type du fichier<br />
masqueAttrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedInt:'LoAs'] forKey:NSFileHFSCreatorCode];<br />
[[NSFileManager defaultManager] setAttributes:masqueAttrs ofItemAtPath:[[panel filename] stringByExpandingTildeInPath] error:nil];<br />
masqueAttrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedInt:'BaS2'] forKey:NSFileHFSTypeCode];<br />
[[NSFileManager defaultManager] setAttributes:masqueAttrs ofItemAtPath:[[panel filename] stringByExpandingTildeInPath] error:nil];<br />
}<br />
}[/size]<br />
Pour ce type de fichier, j'ai défini un Exported UTI et un type (cf. fichier joint).
Mon problème est le suivant : lorsque j'exécute la méthode de création du fichier, le fichier est parfaitement créé avec un contenu correct mais il ne prend pas l'icône que j'ai définie.
Je ne vois pas où est mon erreur et je ne comprends pas d'autant que si je glisse le fichier créé sur l'icône de l'application ou si je double-clique sur ce fichier, l'application s'exécute et le fichier est traitement parfaitement.
Quelqu'un a-t-il une réponse à m'apporter ?
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Merci
Hello,
Tu peux utiliser la méthode setIcon de la class NSWorkspace ?
-[NSWorkspace setIcon:forFile:options:];
a voir...
Essaie de "reconstruire le bureau", il me semble qu'il faut maintenir Option appuyée lors du démarrage de Finder.
Merci à tous pour votre aide.
Après vérification, la bonne vieille méthode de reconstruction du bureau de système 7, 8 etc... (ALT+CMD au démarrage) semble ne plus être d'actualité sous OS X.
Finalement j'ai adopté la méthode [NSWorkspace setIcon:forFile:options:] qui fonctionne parfaitement. L'icône peut toutefois être supprimée dans la fenêtre de lecture des informations du fichier par un simple CMD-X.
J'aurais quand même bien aimé comprendre pourquoi cela ne fonctionne pas sans la mise en oeuvre de cette méthode.
Faute de mieux, pour le moment je garde cette solution.
Merci