NSColorWell Utilisation
NseaProtector
Membre
Bonjour,
Je patauge dans la choucroute, j'ai le cocoa par la pratique, j'arrive a faire pas mal de trucs et j'ai les bases en C, même en assembleur du reste, mais ce doit être la logique POO qui m'échappe...
Voilà mon problème,
J'ai une NSView pour laquelle j'ai créer une classe maVue, je dessine un rectangle coloré (chapitre 12 du cocoa par la pratique), mais je voudrais qu'un NSColorWell change la couleur de mon rectangle.
J'y arrive, sauf que mon NSColorWell ne reflète pas la couleur de mon rectangle au démarrage et je ne pense pas que mon code soit nickel.
J'imaginais que dans maVue.h je devais ajouter une variable NSColor *bgColor;
et créer les setters et getter
Mais après je fait comment pour lier mon NSColorWell à ma vue ?
Je patauge dans la choucroute, j'ai le cocoa par la pratique, j'arrive a faire pas mal de trucs et j'ai les bases en C, même en assembleur du reste, mais ce doit être la logique POO qui m'échappe...
Voilà mon problème,
J'ai une NSView pour laquelle j'ai créer une classe maVue, je dessine un rectangle coloré (chapitre 12 du cocoa par la pratique), mais je voudrais qu'un NSColorWell change la couleur de mon rectangle.
J'y arrive, sauf que mon NSColorWell ne reflète pas la couleur de mon rectangle au démarrage et je ne pense pas que mon code soit nickel.
J'imaginais que dans maVue.h je devais ajouter une variable NSColor *bgColor;
et créer les setters et getter
-(NSColor *)bgColor;<br />-(void)setBgColor:(NSColor *)c;<br />
Mais après je fait comment pour lier mon NSColorWell à ma vue ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Non... "IBOutlet NSColorWell *bgColorWell;" et pas de setters ou getters, mais une IBAction qui fait un "setNeedDisplayInRect"
et l'IBAction dans l'AppController, non ? Je dis ça parce que mon NSColorWell n'a rien a voir avec ma classe.
J'essaye tout de suite.
  [bgColor set];
ça m'agace de pas savoir !!!!
[bgColorWell Set];Â // ça le fait pas !!!
[maVue setNeedsDisplay:YES]; // Unrecognised selector ...
Je patauge encore mais j'ai une base pour chercher...
Or, au démarrage, aucune action n'est envoyée.
Tu disposes dés lors de deux solutions:
1 - Adopter la même couleur par défaut pour la vue et le colorWell (c'est le plus facile)
2 - Que le contrôleur aille chercher la couleur du colorWell (donc, là il lui faut une outlet vers le Colorwell) et la donne à la vue (dans -awakeFromNib).
Voilà ce qui me bloquait:
J'essayais de faire:
en fait il me fallait faire:
Et je n'arrivais pas a demander le redessin de ma vue:
En commentaire mon erreur
Mais le plus important c'est de comprendre et dans les erreurs d'apprendre...
http://www.cocoa.fr/2008/11/19/vos-debuts-en-cocoa/
Normalement, seul le contrôleur devrait avoir des actions et des outlets.
Tu n'as pas non plus de couche modèle; typiquement le modèle devrait ici comporter une NSColor. Certes ça complique, mais le MVC est une bonne manière d'organiser un programme lorsqu'il devient complexe.
Dans les programmes ou modules simples, la vue peut faire office de contrôleur
C'est bien pour cela que je venais chercher conseil, et je compte procéder par étape, j'imagine que je vais devoir remanier cela car si je met une sauvegarde et des préférences je risque de me confronter a une usine a gaz style Pompidou ou pire encore...
Sinon, pour info mon programme est juste ludique pour moi, il s'agit de créer une vue style au choix papier millimétré / grand carreau / partition avec un NSColorWell pour le fond et un pour les lignes, un ou plusieurs réglages des écarts, impression et PDF et pourquoi pas une sauvegarde XML.
Bref un programme assez bête mais qui me semble idéale pour mettre en oeuvre tout seul les connaissances du livre de qui vous savez. (oui ce soir y'a Harry Potter, lol)
Bon courage !
Je te remercie, c'est sympathique comme commentaire, l'utilité est effectivement pas élevé sauf pour en faire un tuto... Encore merci c'est encourageant.