NSTableView

1、代碼實現NSTableView

_tableView = [[NSTableView alloc] initWithFrame:NSMakeRect(0, 0, 162, 643)];

? ? _tableView.delegate = self;

? ? _tableView.dataSource = self;

? ? NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"field1"];

? ? column.width=162;

? ? [_tableViewaddTableColumn:column];

? ? NSScrollView *scrollView = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, 0, 162, 643)];

? ? scrollView.backgroundColor = [NSColor purpleColor];

? ? [scrollViewsetDocumentView:_tableView];

? ? [selfaddSubview:scrollView];

? ? scrollView.backgroundColor = [NSColor greenColor];

? ? [_tableView reloadData];

2、必要的兩個 datasource

/** 返回顯示行數 */

- (NSInteger)numberOfRowsInTableView:(NSTableView*)tableView;

/** 純文本調用該方法直接返回字符串 */

- (id)tableView:(NSTableView*)tableView objectValueForTableColumn:(nullableNSTableColumn*)tableColumn row:(NSInteger)row;

或者

/** 自定義界面 */

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

例:

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

{

? ? NSTableCellView *cell = [tableView makeViewWithIdentifier:@"NSTableCellView的標識" owner:nil];

? ? cell.imageView.image = [NSImage imageNamed:dic[@"icon"]];

? ? cell.textField.stringValue = dic[@"title"];

? ? return cell;

}

/** 設置cell選中高亮顏色 */

- (BOOL)tableView:(NSTableView*)tableView shouldSelectRow:(NSInteger)row

{

? ? NSTableRowView *myRowView = [self.tableView rowViewAtRow:row makeIfNecessary:NO];

? ? [myRowViewsetSelectionHighlightStyle:NSTableViewSelectionHighlightStyleRegular];

? ? [myRowViewsetEmphasized:NO];

? ? return YES;

}

注:選中狀態切換到其他app再切換回來,選中的cell顏色會變回默認顏色,繼續摸索中。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容