2016-09-23 2 views
-1

Ich habe ein Produkt-Objekt, aber jetzt kann ich nur einen seiner Werte in jeder Tabellenzellenansicht drucken. Ich möchte den gesamten Inhalt meines Objekts in einer Zelle anzeigen. Wenn ich versuche, einen anderen Wert hinzuzufügen, ergreift es nur die letzte von mir erstellte ZelleView. Wie kann ich meine Zelle mit allen meinen Objektwerten füllen?Wie kann ich alle Objektwerte in einer NSTableCellView anzeigen?

Antwort

0

Falls jemand interessiert ... Sie müssen eine benutzerdefinierte Zelle erstellen und geben Sie Ihre benutzerdefinierte Zelle Klasse Etiketten und weisen Sie die Werte Ihres Objekts den Etiketten. Stellen Sie sicher, dass Sie Ihre neue benutzerdefinierte Klasse in den View-Controller importieren. Jetzt kann jede Zelle mit so vielen Labels, Bildern und Inhalten aus Ihrer Datenbank/API/JSON angepasst werden.

Custom.h

#import <Cocoa/Cocoa.h> 

@interface Custom : NSTableCellView 

@property (weak) IBOutlet NSTextField *label1; 

@property (weak) IBOutlet NSTextField *label2; 

@end 

Custom.m

#import "Custom.h" 

@implementation Custom 

@synthesize label1, label2; 

@end 

Tableview

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{ 
static NSString *cellIdentifier = @"cell"; 

Custom *cellView = [tableView makeViewWithIdentifier:cellIdentifier owner:self]; 

if (cellView == nil) 
{ 
    NSLog(@"A cell"); 

    [cellView setIdentifier:cellIdentifier]; 
} 



Product * productObject; 
productObject = [productsArray objectAtIndex:row]; 

cellView.textField.stringValue = productObject.product_image; 
cellView.label1.stringValue = productObject.product_name; 
cellView.label2.stringValue = productObject.product_price; 




return cellView; 
} 
Verwandte Themen