Domanda

Ho un NstableView associato a un NsarrayController con due colonne. Una colonna è legata agli oggetti disposti del controller dell'array e visualizza una stringa.

Vorrei visualizzare un'immagine nell'altra colonna, ma non riesco proprio a farlo funzionare. Ho trascinato un NSIMAGECELL nella colonna e ho impostato l'immagine a mano, ma non verrà visualizzata in fase di esecuzione. Ho controllato il doppio e l'immagine è nella mia directory delle risorse.

Mi sto perdendo qualcosa? Cos'altro dovrei fare per far apparire quell'immagine?

È stato utile?

Soluzione

Quindi vuoi avere la stessa immagine apparire per ogni riga? È per questo che lo stai impostando "a mano"? Per questo, è possibile mescolare i metodi NstableViewDataSource con i legami. L'idea è che la tua colonna di stringa sarà legata come al solito, ma la colonna dell'immagine non è vincolata. Ha il suo set di identificatore (come "ImageColumn"). Quindi si utilizza NumberOfRowsInableView: e TableView: ObjectValueForTuLeCumn: riga: per fornire il conteggio degli oggetti del controller dell'array (in modo che abbia il giusto numero di righe) e restituisce sempre l'immagine statica quando chiede il valore per la colonna destra (controllando l'ID Per il tuo "imagecolumn"), tornando a zero altrimenti.

Se l'immagine non è statica (ovvero, si desidera usarla come indicatore di qualche tipo) è possibile utilizzare il metodo sopra (restituire un certo valore basato sull'immagine) o assistenti. Per utilizzare i bindings, è possibile aggiungere una proprietà a qualsiasi classe che il controller dell'array tiene, come "stato" (un numero). Utilizzerai quindi un NSValueTransformer personalizzato che trasforma il numero di stato in un'immagine corrispondente. La tua colonna sarà legata al controller dell'array ardiedObjects.status, utilizzando il trasformatore di valore (vedere NSValueTransformer per le istruzioni per l'uso: devi registrarlo, quindi utilizzare il suo nome). Il risultato è un'immagine nella colonna che corrisponde a un determinato stato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top