2014-04-09 72 views
0

我的表格視圖中的每一行都只是說「Table View Cell」。我檢查過我使用的數據源數組,它有55個對象,其中沒有一個具有「Table View Cell」的值。爲什麼我的tableview行不能填充我提供的數據?

@implementation BMAppDelegate 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
     self.schemes = [BMSchemeHandler parseSchemeFileToArray]; 
    self.schemeTableView.dataSource=self; 
    self.schemeTableView.delegate=self; 

} 

-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{ 
    return [self.schemes objectAtIndex:row]; 
} 
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{ 
    return (self.schemes.count); 
} 

enter image description here

這裏是我的解決方案...

@implementation BMAppDelegate 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
     self.schemes = [BMSchemeHandler parseSchemeFileToArray]; 
    self.schemeTableView.dataSource=self; 
    self.schemeTableView.delegate=self; 

} 

-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{ 
    return (self.schemes.count); 
} 

- (NSView *)tableView:(NSTableView *)tableView 
    viewForTableColumn:(NSTableColumn *)tableColumn 
        row:(NSInteger)row { 

    // Retrieve to get the @"MyView" from the pool or, 
    // if no version is available in the pool, load the Interface Builder version 
    if([tableColumn.identifier isEqualToString:@"myCell"]){ 
    NSTableCellView* result = [tableView makeViewWithIdentifier:@"myCell" owner:self]; 

    // Set the stringValue of the cell's text field to the nameArray value at row 
    result.textField.stringValue = [self.schemes objectAtIndex:row]; 

    // Return the result 
    return result; 
    }else{ 

    } 
    return nil; 
} 

回答

0

如果您正在尋找在蘋果的tableview遊樂場或類似的東西,你就錯過是在表格單元格的綁定文本域。在XIB中,在表格單元格中,它們將文本字段的值與關鍵路徑objectValue綁定到表格視圖[NSString屬性] - 您正在告訴表格視圖什麼是對象值,因此您可以依賴在那個約束。

如果您沒有將單元格中的文本字段綁定到要在objectValueForTableColumn:row:中返回的對象,那麼您需要實現NSTableViewDelegate協議並實現TableView:viewForTableColumn:行以使cellview出列並獲得一個指向文本字段的指針來設置它的字符串值。

只是設置對象值是不夠的。 NSTableCellView需要知道文本來自哪個對象。

+0

實現viewForTableColumn:行運行良好。謝謝! –

相關問題