0

我有大纲视图,其中每个元素都是复选框。我想为某些业务逻辑提供的这些复选框设置初始状态。我正在尝试以 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;
}

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

4

1 回答 1

0

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

于 2012-06-18T07:58:17.910 回答