Objective c 当所有的复选框都被选中时,如何使大纲视图中的复选框变为选中状态';儿童';s复选框';检查过了吗?

Objective c 当所有的复选框都被选中时,如何使大纲视图中的复选框变为选中状态';儿童';s复选框';检查过了吗?,objective-c,cocoa,Objective C,Cocoa,当选中所有子复选框时,如何使大纲视图中父/组行上的复选框变为选中。但是,当仅选中一些时,将显示一行。下面是我所说的一个例子: 无论何时选中一个框,都要检查是否选中了它的所有同级。如果是,请检查父级。(然后在该级别上再次运行检查。) 要做到这一点。。。你的NSOutlineView有一个数据源,对吗?告诉它要显示什么的东西?在单击复选框时调用的方法中(无论您将其设置为什么),在单击的行后面获取父对象,然后更新其状态。如果您没有直接引用模型中的复选框,则可以使用-[NSOutlineView par

当选中所有子复选框时,如何使大纲视图中父/组行上的复选框变为选中。但是,当仅选中一些时,将显示一行。下面是我所说的一个例子:


无论何时选中一个框,都要检查是否选中了它的所有同级。如果是,请检查父级。(然后在该级别上再次运行检查。)

要做到这一点。。。你的NSOutlineView有一个数据源,对吗?告诉它要显示什么的东西?在单击复选框时调用的方法中(无论您将其设置为什么),在单击的行后面获取父对象,然后更新其状态。如果您没有直接引用模型中的复选框,则可以使用
-[NSOutlineView parentForItem::
查找该复选框


希望这能给你足够的时间开始。如果没有,那么您需要问一个更具体的问题,详细说明您遇到问题的部分。

每当您选中一个复选框时,请检查其所有同级是否都已选中。如果是,请检查父级。(然后在该级别上再次运行检查。)

要做到这一点。。。你的NSOutlineView有一个数据源,对吗?告诉它要显示什么的东西?在单击复选框时调用的方法中(无论您将其设置为什么),在单击的行后面获取父对象,然后更新其状态。如果您没有直接引用模型中的复选框,则可以使用
-[NSOutlineView parentForItem::
查找该复选框


希望这能给你足够的时间开始。如果没有,那么您需要问一个更具体的问题,详细说明您遇到问题的部分。

如何使其显示一行而不是复选框?[复选框设置状态:NSMixedState];[NSButtonCell设置状态:]。选项有NSOnState、NSOffState和NSMixedState。如果单元格仅支持两种状态,并且指定NSMixedState,则setState会将状态设置为NSOnState。(来自apple文档)注意,您必须允许混合状态,无论是在IB中还是使用setAllowsMixedState:来了解大纲视图:来了解NSButtonCell:和。(我只是在谷歌上搜索了“NSButtonCell”和“NSOutlineView”来找到这些结果。)这完全取决于你的程序结构。我是想帮你,但是你问的问题太模糊了,我觉得你没有自己做任何探索或研究。您需要逐个检查兄弟复选框并读取它们的当前状态,然后根据这些信息做出决定。但我不知道你会怎么做,因为我不是在写这个程序。(此外,我不打算写这个程序。)玩一玩。看看你自己能做些什么。我如何让它显示一行而不是一个复选框?[复选框设置状态:NSMixedState];[NSButtonCell设置状态:]。选项有NSOnState、NSOffState和NSMixedState。如果单元格仅支持两种状态,并且指定NSMixedState,则setState会将状态设置为NSOnState。(来自apple文档)注意,您必须允许混合状态,无论是在IB中还是使用setAllowsMixedState:来了解大纲视图:来了解NSButtonCell:和。(我只是在谷歌上搜索了“NSButtonCell”和“NSOutlineView”来找到这些结果。)这完全取决于你的程序结构。我是想帮你,但是你问的问题太模糊了,我觉得你没有自己做任何探索或研究。您需要逐个检查兄弟复选框并读取它们的当前状态,然后根据这些信息做出决定。但我不知道你会怎么做,因为我不是在写这个程序。(此外,我不打算写这个程序。)玩一玩。看看你自己能做些什么。