Ich habe eine NSDictionary, die die Daten alle gelten:Ausgabe mit einem checkBox in einem viewbased NSTableView
- Einen Titel (nicht wichtig für diese Frage)
- Einen Link (nicht wichtig für diese Frage)
- eine Reihe von NSDictionary wieder 1 Titel und 1 Link
ich Darstellung dieser Daten in einer Ansicht auf Basis der Tabellenansicht wie folgt enthält:
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tv
{
if (tv == _downloadTable)
//I use this "if" because I have another tableView that has nothing to do
//with this one
{
return [[myDictionary objectForKey:@"myArray"] count];
}
}
Ich möchte 2 Spalten in diesem tableView
, eins zum Anzeigen des Titels und eins mit einem Kontrollkästchen, das würde etwas tun lassen mich wissen, welche Zeile überprüft wird.
- (NSView *)tableView:(NSTableView *)tv viewForTableColumn :(NSTableColumn *)tableColumn row :(NSInteger)row
{
if (tv == _downloadTable)
{
if (tableColumn == _downloadTableTitleColumn)
{
if ([[[myDictionary objectForKey:@"myArray"]objectAtIndex:row]objectForKey:@"title"])
{
NSString *title = [[[myDictionary objectForKey:@"myArray"]objectAtIndex:row]objectForKey:@"title"];
NSTableCellView *result = [tv makeViewWithIdentifier:tableColumn.identifier owner:self];
result.textField.stringValue = title;
return result;
}
}
if (tableColumn == _downloadTableCheckColumn)
{
NSLog(@"CheckBox"); //I wanted to see exactly when that was called
//But it didn't help me :(
NSButton *button = [[NSButton alloc]init];
[button setButtonType:NSSwitchButton];
[button setTitle:@""];
return button;
}
}
}
Gerade jetzt, wenn ich es starten, und klicken Sie auf die Checkbox es tut nichts (natürlich, weil ich weiß nicht, wie es etwas tun zu machen. Wo soll ich den Code setzen, die etwas tun sollte?
das Hauptziel ist eine editierbare Liste der Downloads, gerade jetzt die Liste angezeigt wird, mit der Checkbox rechts neben dem Titel an jeder Zeile. ich würde gerne wissen, welche checkBox geprüft und welche nicht.
Ich habe dies versucht:
[button setAction:@selector(checkBoxAction:)];
- (void)checkBoxAction: (id)sender
{
NSLog(@"I am button : %@ and my state is %ld", sender, (long)[sender state]);
}
Aber ich kann nicht herausfinden, wie man die Reihe dieser Taste erhält, um zu wissen, welcher Titel mit dieser CheckBox verbunden ist.
Ich versuchte auch die setObjectValue
Methode der tableView
ohne Erfolg.
Die Art und Weise Ich mag es wäre zu arbeiten:
Ich habe einen Check „starten Sie den Download“ Button, wenn jedes Kontrollkästchen aktiviert ist oder nicht, und starten Sie die nächste Aktion (Download) nur mit der überprüften Reihe.
Ich möchte Bindings vermeiden, weil ich plane, es auch auf iOS arbeiten zu lassen, und ich möchte keinen anderen Code für iOS haben.
Ich negierte nicht:/Ich lese tatsächlich die Post, die Sie gerade verbunden – ItsASecret
Sie SOLLTE in der Lage sein, die einfachen Änderungen zu machen, die ich in meine Post gesetzt habe, sprach nicht notwendigerweise für die Nega tion. Sie müssen immer noch die Entkalkulation durchdenken !!! – trumpetlicks
Hier ist auch ein großer Link auf benutzerdefinierte UITableView Zeichnung, spricht mit den Deque Sachen auch !!! http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html – trumpetlicks