带复选框的 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];
}
}
}
}
我希望使用绑定将复选框添加到 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];
}
}
}
}