Pregunta

Tengo un nstreecontroller con enlaces a una clase.

NsoutlineView Dirtree se une al NSTREECONTROLLER

En particular, el contenido de la vista de esquema se une a ArregedObjects

Esto parece funcionar bien, pero estoy en mi ingenio para descubrir por qué no responde a Reloaddata.

Las rutas de teclas nstreecontroller son:-

Children    subDirectories
Count       numberOfSubDirs

Estos se enumeran a continuación; NumberOfSubDirs devuelve un recuento simple de subdirectorios (con una pantalla de diagnóstico adicional).

- (NSArray *)subDirectories {
    if (subDirectories == nil) {
        [self loadSubDirectories];
    }
    return subDirectories;
}

- (NSInteger)numberOfSubDirs {
    NSArray *tmp = [self subDirectories];
    NSLog(@"numberOfSubDirs %@ %d", [self relativePath], [tmp count]);
    return [tmp count];
}

Si llamo a una función de actualización que actualiza los datos, llame [Dirtree ReloadData]; Obtengo la siguiente salida:-

Reload Data
numberOfSubDirs Shared 7
numberOfSubDirs Adobe 1
numberOfSubDirs bZTree2 0
numberOfSubDirs Ian Documents 25
numberOfSubDirs Library 1
numberOfSubDirs NET 1
numberOfSubDirs TSA 12
numberOfSubDirs Wacom 1

Si elimino un directorio (externamente en Finder) y llamo a la función de actualización, obtengo la siguiente salida:-

Reload Data
numberOfSubDirs Shared 6
numberOfSubDirs Adobe 1
numberOfSubDirs bZTree2 0
numberOfSubDirs Ian Documents 25
numberOfSubDirs Library 1
numberOfSubDirs NET 1
numberOfSubDirs TSA 12
numberOfSubDirs Wacom 1

NSTREECONTROLLER llama a NumberOfSubdirs a los padres "compartidos", y se le dice correctamente que ahora tiene 6 subdirectorios.

Sin embargo, luego consulta 7 subdirectorios, incluido el elemento eliminado "bztree2", y no actualiza la pantalla para mostrar solo los 6 que existen.

No hay solución correcta

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