J'ai des problèmes assez ennervant avec une NSView.
Je vous décrit brievement le principe. La vue est sensée représenter une grille de 15 sur 15 initialement de couleur uniforme. L'objet possède 3 tableaux d'entiers de 225 cases chacun pour les composantes RVB de chaque case, C1,C2,C3.
J'ai donc un truc dans drawRect: du type :
Je rencontre le problème suivant : Il semble que la méthode d'initialisation ne soit pas appelée avant d'afficher la vue ( par exemple si je demande à mettre tous les C1 à 100 pendant l'initialisation, la grille n'apparait pas rouge mais noire )
Pour tenter d'y remedier, j'ai créé une méthode externe qui remplit les tableaux Ci et fait un setNeedsDisplay : Tout marche alors mais bon j'aurais aimé que cette étape se réalise automatiquement...
Si quelqun a une idée, j'ai peut-être oublié un truc hyper important ( je suis encore un débutant en Cocoa )...
Merci d'avance...
Je vous décrit brievement le principe. La vue est sensée représenter une grille de 15 sur 15 initialement de couleur uniforme. L'objet possède 3 tableaux d'entiers de 225 cases chacun pour les composantes RVB de chaque case, C1,C2,C3.
J'ai donc un truc dans drawRect: du type :
Bloc de code:
int i;
int j;
NSRect R;
for (i=0;i<=14;i++) {
for (j=1;j<=15;j++) {
[[NSColor colorWithDeviceRed:(float)C1[15*i+j]/100 green:(float)C2[15*i+j]/100 blue:(float)C3[15*i+j]/100 alpha:1.0] set];
R.origin.x=40*i;
R.origin.y=40*(j-1);
R.size.height=40;
R.size.width=40;
[NSBezierPath fillRect:R];
}
}
Je rencontre le problème suivant : Il semble que la méthode d'initialisation ne soit pas appelée avant d'afficher la vue ( par exemple si je demande à mettre tous les C1 à 100 pendant l'initialisation, la grille n'apparait pas rouge mais noire )
Pour tenter d'y remedier, j'ai créé une méthode externe qui remplit les tableaux Ci et fait un setNeedsDisplay : Tout marche alors mais bon j'aurais aimé que cette étape se réalise automatiquement...
Si quelqun a une idée, j'ai peut-être oublié un truc hyper important ( je suis encore un débutant en Cocoa )...
Merci d'avance...