Domanda

Ho una visualizzazione della tabella a cui aggiungo le colonne in modo dinamico. Deve essere fatto in questo modo perché non riesco a prevedere come molti o le colonne che ho bisogno.

Alcune colonne sono caselle ma non possono fare clic su di loro quando corro la mia domanda. La colonna e la casella di controllo sono impostati per essere modificabile, ma se clicco sulla casella di controllo il controllo non otterrà set. Mi sto perdendo qualcosa?

Aggiorna

Come sto (cercando) impostare lo stato sulla casella di controllo:

- (void)tableView:(NSTableView *)theTableView 
   setObjectValue:(id)theObject 
   forTableColumn:(NSTableColumn *)theColumn 
              row:(int)rowIndex
{
    if (theTableView == resultsTableView) {

        if ([[theColumn identifier] isEqualToString:CHCheckBoxColumnIdentifier]) {

            NSInteger state = [[theColumn dataCell] state];
            if (state == NSOnState) {
                [[theColumn dataCell] setState:NSOffState];
            } else {
            [[theColumn dataCell] setState:NSOnState];
            }

            /*
            NSLog(@"%@", theObject);
            NSLog(@"%@", theColumn);
            NSLog(@"%i", rowIndex);
            */
        }
    }
}
È stato utile?

Soluzione

I tuoi colonne associate ad un controller o stai usando il protocollo NSTableDataSource? Ho il sospetto che questi ultimi, ma avrete bisogno di specificare.

Proseguendo la mia ipotesi: un clic su una casella di controllo viene gestita allo stesso modo di qualsiasi altra cosa nel metodo -tableView:setObjectValue:forTableColumn:row:. Il vostro oggetto sarà lo stato del tasto ...

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