如何从NSOutlineView获取所选单元格?

时间:2015-03-20 10:30:52

标签: objective-c macos cocoa

如何从NSOutlineView获取所选单元格? 不是项目,而是细胞。 不是datacell而是当前的单元本身。

它是基于细胞的NSOutlineView。

2 个答案:

答案 0 :(得分:0)

func getSelectedCell() -> NSTableCellView? {
    if let view = outlineView.rowView(atRow: outlineView.selectedRow, makeIfNecessary: false) {
        return view.view(atColumn: outlineView.selectedColumn) as? NSTableCellView
    }
    return nil
}

另见NSOutlineView, how to get the selected cell

答案 1 :(得分:-1)

使用委托。当单元格更改其选择状态时,将调用willDisplayCell:

- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {
    id selectedItem = [outlineView itemAtRow:outlineView.selectedRow];
    if (item == selectedItem) {
        // 'cell' is selected cell for 'tableColumn'
    }
}