2009-12-30 21 views
5

Pour commencer, il y a un NSArrayController ("Serveurs") dont le contenu est un tableau d'objets "serveur". J'ai également un NSTableView avec une colonne. La colonne est liée à la propriété "arrangedObjects.status" du serveur.Pourquoi les images de mon NSTableView disparaissent-elles?

J'utilise un NSValueConverter personnalisé pour faire ce statut dans une image pour le dataCell de la colonne qui est un NSImageCell. Qu'est-ce que je ne comprends pas, c'est pourquoi les images qui apparaissent dans la colonne sont correctes, mais uniformément disparu. Juste pour tester, j'ai la même image en dehors de la vue de la table pour la comparaison et il dessine bien. Les couleurs des images ne sont pas semi-transparentes.

Est-ce que le NSImageCell dessine les images comme estompées? Est-ce qu'il y a quelque chose que je peux configurer dans IB qui va les dessiner complètement saturé?

Répondre

11

De Jim Correia Cocoa-Dev:

"Le 10.6, NSImageView puisera son contenu estompé lorsque le contrôle est désactivé

Votre liaison a. « Conditionnellement Sets Activé » sous tension".

+0

J'ai eu le même problème mais grâce à vous j'ai résolu. Je vous remercie! – Dev

1

La propriété "enabled" de la cellule d'affichage de l'image ou de la colonne peut être définie sur NO (ou non cochée dans IB). Je crois que cela aplanit l'image affichée.

+0

Hmmm ... La propriété "enabled" pour la cellule image est définitivement vérifiée, tout comme la propriété "enabled" pour la table elle-même. Il n'y a pas de propriété activée pour les colonnes de la table. Les propriétés activées ne sont pas liées à quoi que ce soit. Mais, en faisant une comparaison de pixels, les images dessinent définitivement comme si elles étaient désactivées. –

+0

Pure supposition: il pourrait être l'utilisation du convertisseur de valeur (NSImageViewCell pourrait être désactivé de force par le mécanisme de liaison s'il ne sait pas comment "définir" une nouvelle image). Vous devriez être en mesure de lui fournir les données brutes de l'image sans aucune conversion. –

+0

Compris. Cela me semble vraiment bizarre, mais définir l'attribut border de NSImageCell sur "None" signifie qu'il dessine l'image de façon translucide. Pourquoi ça fait ça, je n'en ai aucune idée. –