【发布时间】:2015-03-20 10:30:51
【问题描述】:
如何从 NSOutlineView 中获取选定的单元格? 不是项目,而是单元格。 不是数据单元,而是当前单元本身。
这是一个基于单元格的 NSOutlineView。
【问题讨论】:
标签: objective-c macos cocoa
如何从 NSOutlineView 中获取选定的单元格? 不是项目,而是单元格。 不是数据单元,而是当前单元本身。
这是一个基于单元格的 NSOutlineView。
【问题讨论】:
标签: objective-c macos cocoa
func getSelectedCell() -> NSTableCellView? {
if let view = outlineView.rowView(atRow: outlineView.selectedRow, makeIfNecessary: false) {
return view.view(atColumn: outlineView.selectedColumn) as? NSTableCellView
}
return nil
}
【讨论】:
使用委托。 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'
}
}
【讨论】:
NSOutlineViewDelegate的“处理选择”部分中的方法。