Domanda

Il seguente è all'interno del metodo del delegatoFortableColumn.Sto creando dinamicamente le colonne della tabella nel DataSource in base a una selezione in una vista elenco.

    NSDictionary* rowData = [[self tableData] objectAtIndex:row];
    NSString* identifier = [tableColumn identifier];

    NSTableCellView* result = [tableView makeViewWithIdentifier:@"myCellView" owner:self];
    if (result == nil) {
        result = [[NSTableCellView alloc] initWithFrame:NSMakeRect(0, 0, 90.0, 10.0)];
        _textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 90.0, 10.0)];
        [result setTextField:_textField];
        [[result textField] setStringValue:[rowData objectForKey:identifier]];
    }
    else {
        [[result textField] setStringValue:[rowData objectForKey:identifier]];
    }
    NSLog(@"result text field: %@", [[result textField] stringValue]);

    return result;
.

Ora in

-(void)tableView:(NSTableView *)tableView didAddRowView:(NSTableRowView *)rowView             forRow:(NSInteger)row {
NSLog(@"did add: %ld", row);
NSTableCellView* aView = [rowView viewAtColumn:0];
NSLog(@"%@", [[aView textField]stringValue]);
NSLog(@"%@",[[[rowView viewAtColumn:0 ] textField] stringValue]);
}
.

Il Textfield è uno zombie.Cosa dà?Grazie per il tuo aiuto.

È stato utile?

Soluzione

ha dovuto ottenere un riferimento (iBoutlet) per NSTABLECellView nel controller della finestra.Questo a riguardo, nient'altro.Ora posso accedere a quello tramite il suo identificatore nel delegato NStableView;Il riferimento viene mantenuto anche dopo aver rimosso tutte le colonne e aggiungendo nuove colonne alla tabella.

Ora ha a che fare con le prestazioni di tableview molto abissale su tavolini che vanno da 300-3000 righe!Questo è per un altro giorno.

Altri suggerimenti

L'unica cosa che riesco a pensare è che quando fai:

_textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 90.0, 10.0)];
.

Stai causando un rilascio di qualunque cosa sia stato precedentemente in _textField.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top