如何处理基于NSOutlineView的单元格中的复选框单击

时间:2015-06-06 16:34:44

标签: swift cocoa nsoutlineview

我想处理NSOutlineView中的复选框点击。 复选框是NSButtonCell类型的复选框单元格。 我可以在以下位置设置初始状态:

optional func outlineView(_ outlineView: NSOutlineView,
                            willDisplayCell cell: AnyObject,
                            forTableColumn tableColumn: NSTableColumn?,
                            item item: AnyObject)

现在,当复选框的状态发生变化时,如何执行函数? 我搜索了互联网,但我找不到。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我发现这是从表中设置值:

DragNDropOutlineView: implementing drag and drop in an NSOutlineView

// Optional method: needed to allow editing.
- (void)outlineView:(NSOutlineView *)ov setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item  {
AAPLSimpleNodeData *nodeData = [item representedObject];

// Here, we manipulate the data stored in the node.
if ([[tableColumn identifier] isEqualToString:COLUMID_IS_SELECTABLE]) {
    nodeData.selectable = [object boolValue];
}

}

另一种方法是在每个单元格中设置目标和操作:

optional func outlineView(_ outlineView: NSOutlineView,
                        willDisplayCell cell: AnyObject,
                        forTableColumn tableColumn: NSTableColumn?,
                        item item: AnyObject)