Ich möchte eine NSTableview mit benutzerdefinierten NSTableCellViews erstellen. HierBenutzerdefinierte NSTableView mit benutzerdefinierten NSTableCellView?
ist, was ich jetzt haben:
- Eine Nib-Datei für die Zelle (Ansicht nib) genannt CustomCell.xib
- Eine benutzerdefinierte Klasse für meine Zelle genannt CustomCell
- Und der Code in meinem AppDelegate.m:
H ere Ich eröffne meine Tabellenansicht programmatisch:
NSScrollView *tableContainer = [[NSScrollView alloc]initWithFrame:NSMakeRect(self.window.frame.size.width-TABLEWIDTH, 0, TABLEWIDTH, self.window.frame.size.height)];
NSTableView *tableView = [[NSTableView alloc] initWithFrame:NSMakeRect(self.window.frame.size.width-TABLEWIDTH, 0, TABLEWIDTH, self.window.frame.size.height)];
NSTableColumn *firstColumn = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease];
[[firstColumn headerCell] setStringValue:@"First Column"];
[tableView addTableColumn:firstColumn];
tableView.dataSource = self;
tableView.delegate = self;
[tableContainer setDocumentView:tableView];
tableContainer.autoresizingMask = NSViewHeightSizable | NSViewMinXMargin;
[self.window.contentView addSubview: tableContainer];
Und hier ist die delegierte Methode, wo Ich mag würde meinen benutzerdefinierte Zelle Code setzen:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
// In IB the tableColumn has the identifier set to the same string as the keys in our dictionary
NSString *identifier = [tableColumn identifier];
if ([identifier isEqualToString:@"myCell"]) {
// We pass us as the owner so we can setup target/actions into this main controller object
CustomCell *cellView = [tableView makeViewWithIdentifier:identifier owner:self];
// Then setup properties on the cellView based on the column
cellView.textField.stringValue = @"Name";
return cellView;
}
return nil;
}
In der Nib-Datei für meine benutzerdefinierte Zelle ich süchtig habe herauf die Zellansicht mit meiner benutzerdefinierten Klasse namens CustomCell welche Unterklassen NSTableCellView. Ich habe bisher keine anderen Schritte gemacht. Also meine CustomCell.m ist nur Standard-Initialisierungscode. Ich habe es nicht angerührt. Und ich habe nichts anderes in meiner NIB-Datei gemacht, also habe ich den Eigentümer der Datei nicht geändert, weil ich nicht wirklich weiß, was ich tun soll. Kann jemand helfen? Ich habe mir Beispieldateien aus der Apple-Dokumentation angeschaut, aber nach Tagen der Recherche habe ich keine Lösungen gefunden. Ich würde es sehr schätzen, wenn Sie mir helfen könnten.
Können Sie klären, was das Problem ist? Ich habe Ihren Beitrag ein paar Mal gelesen und kann nicht erkennen, welches Problem Sie haben. – FluffulousChimp
Ich habe eine NSTableView und ich möchte Zellen mit einer benutzerdefinierten Darstellung. Also habe ich eine Nib-View-Datei eingerichtet, wo ich gerade diese NSTableCellView-Zelle habe. Jetzt möchte ich mein NSTableView programmatisch dazu bringen, diese bestimmten Zellen aus der NIB-Datei anzuzeigen. Der obige Code ändert jedoch nichts an meiner Tabelle. Macht Sinn ? –
hast du das gelöst? Ich stolpere auf das gleiche Problem ... – Gossamer