带复选框的 NSOutlineview

NSOutlineview with checkbox

我希望使用绑定将复选框添加到 NSOutlineview,以此项目为基础 https://developer.apple.com/library/archive/samplecode/SourceView/Introduction/Intro.html

如何添加允许用户的行为,如果我点击 parent 复选框,那么它会 select children,如果我取消点击它 - 它会取消select 那个项目的 children?

提前致谢。

将复选框的动作连接到大纲视图委托的动作方法。在action方法中,设置子节点的属性并重新加载item和children.

- (IBAction)checkboxAction:(id)sender {
    NSInteger row = [self.myOutlineView rowForView:sender];
    if (row >= 0) {
        id item = [self.myOutlineView itemAtRow:row];
        if ([item isKindOfClass:[NSTreeNode class]]) {
            BaseNode *node = [item representedObject];
            if ([node isKindOfClass:[BaseNode class]]) {
                for (BaseNode *child in node.children)
                    child.isSelected = node.isSelected;
                [self.myOutlineView reloadItem:item reloadChildren:YES];
            }
        }
    }
}