Problème d'attribut avec un objet NSTableView

Eddy58

Membre confirmé
27 Décembre 2002
134
0
Visiter le site
Quand dans Interface Builder j'active l'option "Show Grid" dans les attributs de mon NSTableView, la grille apparait bien dans Interface Builder. Seulement lorsque je lance mon application, et bien la grille n'apparait plus (données de la DataSource bien présentes). Je vois pas où est le problème ?!
Je développe sous OS X 10.2.8 avec Project Builder v2.1 patché avec Gcc 3.3...
 

bluheim

Membre confirmé
29 Octobre 2003
354
16
Excellente question et je suis désolé de ne pas pouvoir te répondre. En tout cas, si ça peut te rassurer, j'avais le même problème dans les mêmes conditions (OSX 10.2.8 et PB et IB à jour), je n'ai jamais réussi à obtenir une grille dans mon application...

Est-ce un bug ??? En tout cas, avec Panther et xTool, le problème est complétement absent... :??:
 

Eddy58

Membre confirmé
27 Décembre 2002
134
0
Visiter le site
Oui tu es en train de confirmer mes doutes comme quoi ceci est un bug de PB, car même en passant par programmation (méthode showGrid), et bien ça ne fait aucun effet non plus ! Bon je vais tenter de soumettre le problème à l'ADC si ils peuvent m'éclairer. Pas normal ça....
Tiens une autre question à propos des NSTableViews, comment faire pour obtenir comme dans iTunes, une ligne bleu clair, une ligne blanche, une ligne bleu clair, etc... ?
 

bluheim

Membre confirmé
29 Octobre 2003
354
16
Là, je peux t'aider puisque je l'ai fait dans mes premiers essais avec PB.

Il faut redéfinir la métode

- (void)tableView: (NSTableView *)aTableView willDisplayCell: (id)aCell forTableColumn: (NSTableColumn *)aTableColumn row: (int)aRowIndex;

Dans le délégué de ton object TableView.

Voici comment je l'ai redéfini pour imiter exactement le comportement de iTunes :

- (void)tableView: (NSTableView *)aTableView willDisplayCell: (id)aCell forTableColumn: (NSTableColumn *)aTableColumn row: (int)aRowIndex
{

float redComponent = (237.0 / 255.0);
float greenComponent = (243.0 / 255.0);
float blueComponent = (254.0 / 255.0);
float alphaComponent = (255.0 / 255.0);

if ((aRowIndex % 2) == 0)
{
[aCell setDrawsBackground: YES];
[aCell setBackgroundColor: [NSColor colorWithCalibratedRed: redComponent
green: greenComponent
blue: blueComponent
alpha: alphaComponent]];
}
else
{
[aCell setDrawsBackground: NO];
[aCell setBackgroundColor: [NSColor whiteColor]];
}
}



Les valeurs RVB de la couleur bleu sont exactement les mêmes que celles de iTunes, merci Photoshop !!!