我有大纲视图,其中每个元素都是复选框。我想为某些业务逻辑提供的这些复选框设置初始状态。我试图在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;
}
一切都很好,按钮标题改变了。但是状态的改变完全被忽略了。
答案 0 :(得分:0)
最后我找到了解决方案。我仍然不知道为什么会发生这种情况,在这种情况下分配复选框标题和分配复选框状态之间有什么区别。但是在我的方法中分配后似乎有人调用item的integerValue方法来设置checkbox的状态。因此,为了解决这个问题,我需要确保item的integerValue方法返回适当的值。