Vorrei creare un NSTableview con NSTableCellViews personalizzate.Custom NSTableView con NSTableCellView personalizzato?
Ecco quello che ho in questo momento:
- Un file pennino per la cella (vista pennino) chiamato CustomCell.xib
- una classe personalizzata per il mio cellulare chiamato CustomCell
- E il codice nel mio AppDelegate.m:
H ere Creo il mio vista tabella di programmazione:
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];
E qui è il metodo delegato in cui vorrei mettere la mia cella codice personalizzato:
- (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;
}
Nel file pennino per la mia cella personalizzato ho agganciato la vista cella con la mia classe personalizzata denominata CustomCell che sottoclasse NSTableCellView. Non ho fatto altri passi come ora. Quindi il mio CustomCell.m è solo un codice di inizializzazione predefinito. Non l'ho toccato E non ho fatto nient'altro nel mio file di pennino, quindi non ho cambiato il proprietario del file o qualcosa del genere perché non so davvero cosa fare. Qualcuno può dare una mano? Ho esaminato i file di esempio dalla documentazione di Apple, ma dopo giorni di ricerche non ho trovato alcuna soluzione. Apprezzerei molto se tu potessi aiutarmi.
Puoi chiarire qual è il problema? Ho letto il tuo post un paio di volte e non riesco a discernere quale problema stai riscontrando. – FluffulousChimp
Ho un NSTableView e voglio celle con un aspetto personalizzato. Così ho impostato un file di visualizzazione pennino in cui ho appena questa cella NSTableCellView. Ora, desidero programmare a livello di codice il mio NSTableView per visualizzare quelle particolari celle dal file pennino. Tuttavia il codice sopra non cambia davvero nulla nella mia tabella. Ha senso ? –
hai risolto questo? Ho inciampato per lo stesso problema ... – Gossamer