Mac OSX 10.10.5 + Xcode 7.2.1git
Identifier是惟一的。github
用於操做TableView顯示的數據,TableView的DataSource和AppDelegate綁定到TableViewData類。ide
TableView:spa
Button:3d
6. 實現NSTableView方法。code
1. - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableViewblog
2. - (NSView *)tableView:(NSTableView *)tableViewstring
viewForTableColumn:(NSTableColumn *)tableColumnit
row:(NSInteger)row;io
#import <Foundation/Foundation.h> #import <Cocoa/Cocoa.h> @interface TableViewData : NSObject @property (weak) IBOutlet NSTableView *tableView; @property NSMutableArray *rowData; @end
#import "TableViewData.h" @implementation TableViewData - (id)init { self = [super init]; if (self) { // Initialize self. self.rowData = [[NSMutableArray alloc] init]; } return self; } - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView{ return self.rowData.count; } - (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{ NSString *identifier = [tableColumn identifier]; NSDictionary *dict = [self.rowData objectAtIndex:row]; NSString *value = [dict objectForKey:identifier]; if (value) { NSTableCellView *column = [tableView makeViewWithIdentifier:identifier owner:self]; column.textField.stringValue = value; return column; } return nil; } - (IBAction)clickButtonToUpdateTableView:(id)sender { NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"John",@"Name",@"123456",@"Phone", nil]; [self.rowData addObject:dict]; [self.tableView reloadData]; } @end
代碼:github