0

我在 a 中有以下场景NSoutlineView

ParentObject            [checkbox]
  - ChildObject 1       [checkbox]
  - ChildObject 2       [checkbox]

每个复选框都有一个绑定设置为NSTreeController. 当用户选择 parentObject 复选框时,还应设置相应的子复选框。但是,当设置子对象复选框时,不应影响父复选框。我似乎无法让父功能正常工作。

我目前尝试解决的问题是:设置复选框时调用:

-(IBAction)CheckSelected:(NSButtonCell *)sender 
 {
     // Somehow access the cells bound object in the NSTreeController ?????
 }

但是,根据我的研究,我无法找到一种方法来访问NSTreeController.

对这个问题的任何见解将不胜感激。我觉得这是人们在使用 NStreeController 时会遇到的常见问题,我很好奇我是否采取了正确的方法。

谢谢 :)

4

1 回答 1

1

复选框不应设置为调用操作——它们应绑定到属性,例如“isChecked”。

在您的 ParentObject 中,您将拥有类似于以下内容的代码:

- (void)setIsChecked:(BOOL)isChecked;
{
    _isChecked = isChecked;
    for (ChildObject *childObject in self.children)
        childObject.isChecked = isChecked;
}

由于孩子的复选框也被绑定,孩子的新状态将立即反映在大纲视图中。

于 2014-01-10T09:59:12.613 回答