5

Per iniziare, c'è un NSArrayController ("Server") il cui contenuto è un array di oggetti "server".Perché le mie immagini nel mio NSTableView si sono sbiadite?

Ho anche un NSTableView con una colonna. La colonna è associata alla proprietà "arrangedObjects.status" del server.

Io uso un NSValueConverter personalizzato per rendere questo stato in un'immagine per dataCell della colonna che è un NSImageCell.

Quello che non capisco è perché le immagini che appaiono nella colonna siano corrette, ma costantemente sfumate. Solo per testare, ho la stessa immagine al di fuori della vista tabella per il confronto e si disegna bene. I colori nelle immagini non sono semi-trasparenti.

Il NSImageCell disegna le immagini come sbiadite? C'è qualcosa che posso configurare in IB che li attirerà completamente saturi?

risposta

11

Da Jim Correia on Cocoa Dev-:

"On 10.6, NSImageView disegnerà il suo contenuto come oscurato quando il controllo è disattivato

Il tuo legame è.‘Set condizionatamente Enabled’accesi".

+0

Ho avuto lo stesso problema ma grazie a te ho risolto. Grazie! – Dev

1

È possibile che la proprietà "abilitata" della cella di visualizzazione dell'immagine sia impostata su NO (o deselezionata in IB). Credo che questo svanisca l'immagine visualizzata.

+0

Hmmm ... La proprietà "enabled" per la cella dell'immagine viene definitivamente verificata come è la proprietà "enabled" per la tabella stessa. Non esiste una proprietà abilitata per le colonne della tabella. Le proprietà abilitate non sono vincolate a nulla. Ma, facendo un confronto tra pixel, le immagini stanno sicuramente disegnando come se fossero disabilitate. –

+0

Pura ipotesi: potrebbe essere l'uso del convertitore di valori (NSImageViewCell potrebbe essere disabilitato forzatamente dal meccanismo di binding se non sa come "impostare" una nuova immagine). Dovresti essere in grado di fornirgli i dati grezzi dell'immagine senza alcuna conversione. –

+0

Capito. Questo mi sembra davvero strano, ma impostare l'attributo border di NSImageCell su "None" significa che disegna l'immagine in modo traslucido. Perché lo fa, non ne ho idea. –