Domanda

Sto scrivendo un'applicazione Cocoa che visualizza il contenuto di un file di archivio in un NSOutlineView . Fornisco icone personalizzate per un NSBrowserCell nella colonna del contorno, ma non sono stato in grado di ottenere la spaziatura nel modo giusto & # 8212; l'icona della cartella appare sempre troppo vicino al triangolo di apertura, come mostrato di seguito. (FWIW, Versioni e BetterZip entrambi visualizzano dati simili senza problemi di spaziatura.)

NSOutlineView-icon-spacing http://img.skitch.com/20090918-tgfjh8xnb jpg

Dato che solo le icone delle cartelle avranno questo problema, mi interessa davvero solo correggere la spaziatura in quel contesto. (NOTA: sto già memorizzando nella cache le icone per il riutilizzo, quindi non ho problemi a manipolare l'immagine della cartella, se necessario, poiché accadrà comunque solo una volta.) Non sono sicuro che ci sia qualcosa che posso regolare nell'istanza NSBrowserCell , ma non ho ancora trovato nulla che funzioni, non per mancanza di tentativi.


Per i curiosi, JarScan è un pratico strumento da riga di comando (gratuito) per localizzare le classi Java all'interno di JAR file.

È stato utile?

Soluzione

La colonna della tabella di struttura " " (vedi - [NSOutlineView outlineTableColumn] ) è NSTableColumn che disegna il triangolo e il riempimento a sinistra secondo necessità per visualizzare la gerarchia. La cella predefinita per la visualizzazione del contenuto di una tabella è NSTextFieldCell . Per aumentare la spaziatura che vedi, devi fare il disegno in una sottoclasse NSTextFieldCell personalizzata. La spaziatura si ottiene disegnando l'immagine con un offset x. (La vista di assieme disegnerà il triangolo di apertura indipendentemente dalla sottoclasse NSCell utilizzata.)

Si noti che potrebbe essere necessario sostituire i seguenti metodi per disegnare correttamente quando è possibile digitare la cella, selezionarla per la modifica e la descrizione comandi:

Per impostazione predefinita, i campi di testo personalizzati verranno ignorati dal campo di testo e questi verranno disegnati in modo strano.

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