NSColor enregistrement

fredosx

Membre confirmé
26 Mars 2003
49
0
Hello,

Je cherche une solution pour enregistrer dans un fichier de preference la valeur d'un objet NSColorWell qui fait parti de mon interface graphique.
Voila ou je reste bloqué :
<font class="small">Code:</font><hr /><pre>
NSMutableDictionary *pref = [[NSMutableDictionary alloc] init];
[pref setObject:[monColorWell color] forKey:@"Couleur"];
// puis j'enregistre
[pref writeToFile:mon_fichier atomically:YES];
</pre><hr />
Donc je n'ai aucune erreur a la compilation, aucune erreur a l'execution, mais l'enregistrement ne se fait pas, writeToFile retourne NO ...
frown.gif

Est ce que qq un sait comment enregistrer la valeur d'un objet NSColorWell afin de le recuperer a chaque lancement de l'application ???
confused.gif


Merci d'avance
@+
 
Il faut que tu lises bien les conditions d'application de la méthode writeToFile:atomically

Writes a textual description of the contents of the receiver to path. If the receiver’s contents are all property list objects (NSData, NSDate, NSNumber, NSString, NSArray, or NSDictionary objects)

Or un composant est une NSColor!!! qui n'est pas un objet d'une property list.

En fait tu te tortures pour rien Apple propose dans les CoreFoundation une api puissante pour gérer directement les préférences.

http://developer.apple.com/techpubs/macosx/CoreFoundation/ProgrammingTopics/CFPreferences/index.html#//apple_ref/doc/uid/10000129i
 
Ok merci, j'etais passé un peu vite sur ces infos, merci de me les rappeler... Donc ce que je veux faire s'avere impossible... Arg. lol

Connais tu une autre alternative pour enregistrer la couleur du background d'un textField .? si oui peux tu m'eclairer afin que je puisse orienter mes recherches, car la je bloque sévère ..

Merci encore

@+
 
Cool ca marche je suis arrivé a rentrer finalement ma couleur dans ma Property list
smile.gif

Comme mon appli possedait deja une property list je preferais stocker ma couleur dedans...Et comme l'objet NSNumber est compatible voila comment j'ai fait :
-&gt; J'ai decomposer mon objet NSColor en 4 valeurs reelles qui representent le rouge vert bleu et la couche alpha (RGB) de la couleur....
<font class="small">Code:</font><hr /><pre>
NSColor *couleur=[objCouleur color];
NSNumber *red =[[NSNumber alloc] initWithFloat:[couleur redComponent]];
NSNumber *green =[[NSNumber alloc] initWithFloat:[couleur greenComponent]];
//.....On fait de meme avec la couleur Blue et Alpha
// puis on rajoute les quatre valeur dans le dico
// et on enregistre le tout avec writeToFile
</pre><hr />

Et apres lorsque l'on recupere les 4 valeurs on peut recomposer la couleur grace a la methode +colorWithCalibratedRed:green:blue:alpha de l'objet NScolor....
laugh.gif


Merci en tout cas pour le lien tres interessant.

@+
 
Salut,
juste au cas où il y a une autre méthode, pour stocker la NSColor, il suffit de la transformer en NSData :
<font class="small">Code:</font><hr /><pre>
NSColor *color = [objCouleur color];

NSData *colorAsData = [NSArchiver archivedDataWithRootObject:color];

[pref setObject:colorAsData forKey:@"Couleur"];
[pref writeToFile:mon_fichier atomically:YES];

</pre><hr />

voilà ceci fonctionne très bien normalement.

Pour récupérer ta NSColor ensuite il suffit de récupérer l'objet en tant que NSData dans les prefs puis d'utiliser :

<font class="small">Code:</font><hr /><pre>
NSColor *color = [NSUnarchiver unarchiveObjectWithData:colorAsData];
</pre><hr />

et voilà ...
 
merci jonathan d'etre quelqu'un de normal

mais j'avoue qu'il fallait trouver le truc je vais decomp ma couleur

mais c'est pas si stupide que ca pour d'autre application ca peut etre interressant

genre rand des couches RVB

je vais faire un truc rigolo

laugh.gif
laugh.gif
laugh.gif
laugh.gif