基于视图的NSTableView相当于tableView:willDisplayCell:forTableColumn:row?

wil*_*984 12 cocoa objective-c nstableview

过去,使用基于单元格的方法NSTableView,您可以修改tableView:willDisplayCell:forTableColumn:row方法中单元格的属性(例如,NSAttributedString为要显示的其中一个单元格设置自定义).是否有基于视图的表视图的等效方法?

实现tableView:willDisplayCell:forTableColumn:row不会在基于视图的表视图中调用,所以我不知道该怎么做.

我想设置一个NSAttributedString使用setAttributedStringValue默认NSTextField实例的方法,该方法包含在NSTableCellView从Xcode中创建的实例中.

到目前为止,我的努力总是被表格视图本身所取消.有任何想法吗?

cel*_*tex 9

我用它来改变文本的颜色viewForTableColumn.我正在从Interface builder中读取tableCellView.

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    NSTableCellView *result = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
    result.textField.textColor = [NSColor redColor];
    return result;
}
Run Code Online (Sandbox Code Playgroud)

由于textcolor实际上对我来说有所改变,我相信你也应该能够在那里设置其他属性.


小智 -8

检查NSTableViewDelegate Protocol Reference,您将在那里找到您需要的方法:

- (void)tableView:(NSTableView *)aTableView
  willDisplayCell:(id)aCell
   forTableColumn:(NSTableColumn *)aTableColumn
              row:(NSInteger)rowIndex;
Run Code Online (Sandbox Code Playgroud)