Pregunta

En la aplicación de correo de Apple, en la vista del esquema de la izquierda, se muestra una bandeja de entrada o una carpeta en la jerarquía, pero los correos electrónicos en la carpeta o el correo electrónico no se muestran en absoluto.

Me gustaría reproducir esta característica.

Tengo una vista en el contorno conectada a un controlador de árbol.Los objetos (nodos) se agregan al controlador de árbol y se muestran en la vista del esquema.¿Cómo puedo evitar que aparezcan algunos objetos?Específicamente, tengo nodos de carpeta que contienen instancias de un objeto personalizado.Al igual que en Mail.app, me gustaría mostrar solo la carpeta en la vista del esquema y tendría los objetos personalizados que se muestran en otra vista.

Algún código de controlador según pedido;Aquí estoy agregando nodos a un código de foldernode que se selecciona en la vista del esquema:

indexPath = [treeController selectionIndexPath];
indexPath = [indexPath indexPathByAddingIndex:[[[[treeController selectedObjects] objectAtIndex:0] children] count]];//want to insert the new node at the end of the folder node's array of children
    ...
[treeController insertObject:customObjectNode atArrangedObjectIndexPath:indexPath];
NSLog(@"No. of items selected in tree controller/outline view is %i",[[treeController selectedNodes] count]); //if the folderNode is a leaf, this gives 0, i.e. no selection

// if the folderNode is not a leaf, the added child automatically becomes selected by NSOutlineView. In that case I keep its parent selected (the folder) so the next customObjectNode can be added
[self selectParentFromSelection];//however this method will then do nothing because at this point nothing is selected. Now this whole paragraph of code cannot be repeated because nothing is selected so the first line of code doesn't work.

¿Fue útil?

Solución

¿Está utilizando cualquier otro controlador de árboles que tengan que continuar a los niños?

Si no, solo haga que los nodos de la carpeta devuelvan YES en -isLeaf (y nil para la clave de los childnodes).

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