2011-03-04 12 views
6

Solía ​​utilizar y adorar RBSplitView; sin embargo, no pude volver a implementarlo mediante programación ya que una determinada versión de xcode ya no es compatible con los complementos de IB.Cambio de tamaño mediante programación de NSSplitView

Por lo tanto, volví a utilizar NSSplitView. NSSplitView está bien para lo que necesito, lo que pasa es que el autoSave de NSSplitView está roto. Así que decidí implementarlo yo mismo.

Lo que estoy haciendo en este momento es cambiar el tamaño 1 de las subvistas de NSSplitView.

¿Cuál es la forma correcta de de cambiar el tamaño de una NSSplitView? - setPositionOfDivider: itIndex: debería ser el camino a seguir (no lo he probado), sin embargo, no sé cómo obtener la posición actual del divisor.

- gracias de antemano

Respuesta

4

En mi experiencia, NSSplitView que odia y quiere hacerte daño. RBSplitView es mucho mejor, vale la pena IMO el dolor de cabeza del diseño programático (y he estado tan quemado con los complementos de ShortcutRecorder IB que nunca volveré a los complementos de IB).

Dicho esto ....

La única forma que conozco para determinar la posición actual del divisor es mirar a los subvistas, Vista del divisor, tomar su marco, y trabajar en su posición teniendo en cuenta el dividerThickness. Es una locura que tengas que escribir ese código, pero el código no es tan increíblemente difícil, y puedes ponerlo en una categoría.

O regrese a RBSplitView mientras todavía pueda, si sus necesidades alguna vez van a ser complicadas.

+0

Su para una ventana de chat sencilla, mis necesidades no van a ser más complicado en el corto plazo. Estoy seguro de que el código no es difícil, me preguntaba si hay una forma * adecuada *, ya que el cambio de tamaño de 1 subvista sí funcionaba cuando el tamaño era 0; de todos modos, voy a probar esto ahora y, si funciona, obtendrás una cookie –

+0

position = subView0.frame.size.height + subView0.frame.origin.x; funciona, no el código real, pero la forma en que lo hice y lo que hace el trabajo –

+0

Quizás quiso decir subView0.frame.size.width? – ericg

1

estoy usando Swift aquí, pero el mismo método debería existir en Objective C:

mySplitter.setPosition(123, ofDividerAtIndex: 0) 
Cuestiones relacionadas