2009-09-13 5 views
8

Ho uno NSSplitView e sul lato sinistro ho un TableView (come un elenco di fonti) e, a seconda della selezione di righe, voglio cambiare il lato destro della divisione vista. Non riesco a capire come farlo.Impostazione di un lato di NSSplitView a livello di codice

Quando aggiungo la vista secondaria desiderata allo splitview, si aggiunge un'altra divisione (quindi ora ci sono 3 visualizzazioni totali ... non quello che volevo).

[mySplitView addSubview:myCustomView]; 

Come impostare correttamente il lato destro del mio splitView?

Aggiornamento

Utilizzando

[mySplitView replaceSubview:[[mySplitView subviews] objectAtIndex:1] withSubview:myCustomView] 

sembra funzionare, ma è il ridimensionamento della visualizzazione di divisione piuttosto stranamente, come posso fermare questo? In IB esiste un'opzione per disattivare autoResizesSubviews ma non riesco a deselezionare questo. Qualche idea?

risposta

9

Provare a impostare la cornice della nuova vista su quella della vecchia visualizzazione prima di eseguire lo scambio.

+0

Funziona magnificamente. Grazie! – jbrennan

+0

come si fa? – JonF

+1

@JonF: 1. Ottieni il frame della vecchia visualizzazione. 2. Imposta la cornice della nuova vista su quello. 3. Quindi scambiare la vecchia visualizzazione per la nuova. –

0

Inoltre, è possibile dare un'occhiata a BWToolkit che fornisce un modo molto più semplice per impostare le dimensioni per i lati di un riquadro diviso.

+0

Ci ho già provato prima e probabilmente lo userò. Per ora voglio imparare come fare le cose in modo 'Difficile 'così posso comprenderle meglio. Trovo che quando comincio con i toolkit troppo spesso mi sembra una magia. Dopo che mi sentirò a mio agio, probabilmente lo userò comunque. Non ho sentito nulla ma buono a riguardo. – jbrennan