Frage

Hallo alles, ich habe ein NstableView mit drei Spalten. Das erste ist ein Kontrollkästchen und das dritte ist eine Taste. Die Schaltfläche "aktiviert" ist davon abhängig, ob das Kontrollkästchen aktiviert ist oder nicht.

Ich setze den Tabelleninhalt in der awakeFromNib Methode und ich implementiere den Kontrollkästchen -Status in der - (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row Methode. Ich muss einen Weg finden setEnabled: für die NSButton

Vielen Dank

Keine korrekte Lösung

Andere Tipps

Eine gute Möglichkeit, die Schaltflächenzustände in einem NstableView festzulegen, besteht darin, einen NsarrayController zu verwenden und an die Spalten des NstableView zu binden:

  • Binden Sie die Spalte, die die Schaltflächen enthält, an den NsarrayController (siehe Dieses Beispiel)
  • Unter Ermöglicht
    • Setzen Sie die Controller Key zu arrangedObjects
    • Setzen Sie die Model Key Path zum NSArrayController -Button -Status. Nennen wir es zum Beispiel aktiviert .

Jetzt in der Klasse, in der Sie den NSArrayController und den NStableView -Delegierter haben, machen Sie so etwas, nachdem Sie auf ein Kontrollkästchen geklickt haben:

- (void)updateArrayControllerWithButtonState: (BOOL)isEnabled
{
    // theTable is the NSTableView instance variable
    NSInteger row = [theTable clickedRow];

    // Get the array of values that populates the table
    NSMutableDictionary *arrayValues = [[theArrayController arrangedObjects] objectAtIndex:row];

    // Actually change the NSArrayController's value to match
    [arrayValues setObject:[NSNumber numberWithBool:[model isEnabled]] forKey:@"enabled"];

    [theTable reloadData];
}

Vorausgesetzt, Sie haben Ihre Bindungen für den NSArrayController & nstableView ordnungsgemäß eingerichtet, sollte diese Funktion den aktuellen Status der Schaltfläche aktualisieren, um der des NSArrayController zu entsprechen.

Dieser Kodex ist ungetestet, sollte aber die allgemeine Idee beleuchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top