美文网首页
NSTableView

NSTableView

作者: 大漠赏花 | 来源:发表于2018-01-08 18:31 被阅读0次

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颜色会变回默认颜色,继续摸索中。

相关文章

网友评论

      本文标题:NSTableView

      本文链接:https://www.haomeiwen.com/subject/rrabnxtx.html