2009-09-13 6 views
8

Tengo un NSSplitView y en el lado izquierdo tengo un tableView (como una lista de fuentes) y dependiendo de la selección de fila, quiero cambiar el lado derecho de la división ver. No puedo entender cómo hacer esto.Configurando un lado de un programa NSSplitView programáticamente

Cuando agrego mi subvista deseada a la vista dividida, agrega otra división (por lo que ahora hay 3 vistas en total ... no es lo que quería).

[mySplitView addSubview:myCustomView]; 

¿Cómo configuro correctamente el lado derecho de mi splitView?

actualización

Usando

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

parece funcionar, sin embargo es cambiar el tamaño de la vista dividida de manera bastante extraña, ¿cómo puedo detener esto? En IB hay una opción para desactivar autoResizesSubviews pero no puedo desmarcar esto. ¿Algunas ideas?

Respuesta

9

Intente establecer el marco de su nueva vista a la de la vista anterior antes de realizar el intercambio.

+0

Funciona muy bien. ¡Gracias! – jbrennan

+0

¿cómo haces eso? – JonF

+1

@JonF: 1. Obtenga el marco de la vista anterior. 2. Establezca el marco de la nueva vista a eso. 3. Luego cambie la vista anterior por la nueva. –

0

Además, puede echar un vistazo a BWToolkit que proporciona una manera mucho más agradable de establecer los tamaños para los lados de un panel dividido.

+0

Lo he visto antes y probablemente lo use. Por ahora quiero aprender a hacer las cosas de la "manera difícil" para poder entenderlas mejor. Cuando empiezo con kits de herramientas, siento que se siente como magia. Después de que me sienta cómodo, es probable que lo use. No he oído nada más que bueno al respecto. – jbrennan

Cuestiones relacionadas