无法为NSOutlineView中的复选框设置初始状态

时间:2012-05-31 07:58:32

标签: objective-c cocoa checkbox nsoutlineview

我有大纲视图,其中每个元素都是复选框。我想为某些业务逻辑提供的这些复选框设置初始状态。我试图在NSOutlineViewDelegate的适当(我希望)方法中做到这一点:

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
    NSButton *res = [outlineView makeViewWithIdentifier:@"checkbox" owner:self];
    res.title = [item description];
    if([item intValue] & 1)
        res.state = NSOnState;
    else
        res.state = NSOffState;
    return res;
}

一切都很好,按钮标题改变了。但是状态的改变完全被忽略了。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。我仍然不知道为什么会发生这种情况,在这种情况下分配复选框标题和分配复选框状态之间有什么区别。但是在我的方法中分配后似乎有人调用item的integerValue方法来设置checkbox的状态。因此,为了解决这个问题,我需要确保item的integerValue方法返回适当的值。