¿Cómo mantener el último elemento del árbol de NSOutlineView en la parte inferior de una barra lateral?

StackOverflow https://stackoverflow.com/questions/1327718

Pregunta

Me gustaría tener el mismo comportamiento de elementos especiales que en la aplicación Cosas.Quiero decir Cuaderno y Basura elementos en la parte inferior de la barra lateral:

Los elementos del Libro de registro y la Papelera se encuentran en la parte inferior http://tinyurl.com/lhctza

Indique cualquier forma de implementar la misma funcionalidad en el árbol de la barra lateral.

Siento que el elemento especial del árbol 'espaciador' debería usarse junto con outlineView:heightOfRowByItem: método.

Sin embargo, no encuentro cómo calcular la altura total de todos los elementos visibles (incl.espacio entre grupos).

¿Fue útil?

Solución 2

He decidido codificar la solución mediante la adición de 8 píxeles de altura para cada elemento de la raíz en el estilo del grupo. Por lo tanto, el código es el siguiente:

- (CGFloat)outlineView:(NSOutlineView *)ov heightOfRowByItem:(id)item;
{
    if (![item isSpacer]) return [ov rowHeight];

    static const CGFloat ADDITIONAL_SPACE = 8.0f;
    NSUInteger numberOfRootGroups = 2;
    CGFloat heightOfRows = [ov rowHeight] * ([ov rowForItem:item] + 1) 
        + ADDITIONAL_SPACE * numberOfRootGroups;
    CGFloat heightOfSidebar = [[ov superview] frame].size.height;
    return MAX(0.0f, heightOfSidebar - heightOfRows);
}

Gracias a todos por el apoyo!

Otros consejos

Usted puede tratar simplemente tener dos puntos de vista de esquema: Uno de altura fija, clavado en la parte inferior de su supervista, y el otro de altura variable, con su parte inferior inmediatamente por encima de la parte superior de la primera. La vista de esquema de altura fija contendría los elementos del libro de registro y basura, y la vista de esquema de altura variable contendría todos los demás.

La parte difícil sería hacer este juego agradable con una vista de desplazamiento, pero creo que podría hacerlo. Imagino que había puesto a ambos en un NSView totalmente redimensionable y hacer que de la vista de desplazamiento vista del documento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top