2012-05-31 2 views
0

각 요소에 체크 상자가있는 개요보기가 있습니다. 일부 비즈니스 로직에서 제공하는대로이 체크 박스의 초기 상태를 설정하려고합니다. 나는 NSOutlineViewDelegate의 적절한 (I 희망) 방식으로 그것을 할 노력하고 있어요 :NSOutlineView에서 확인란의 초기 상태를 설정할 수 없습니다.

- (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

마지막으로 해결책을 찾았습니다. 나는 아직도 이런 일이 일어나는 이유를 모르지만,이 경우 체크 박스 제목 할당과 체크 박스 상태 할당 간에는 어떤 차이가있다. 그러나 누군가 내 메소드에서 할당 한 후 체크 박스의 상태를 설정하기 위해'item'의'integerValue' 메소드를 호출하는 것으로 보입니다. 그래서,이 문제를 해결하기 위해,'item'의'integerValue' 메쏘드가 적절한 값을 반환하도록해야합니다. – Hohol

답변

0

마지막으로 해결책을 찾았습니다. 나는 아직도 이런 일이 일어나는 이유를 모르지만,이 경우 체크 박스 제목 할당과 체크 박스 상태 할당 간에는 어떤 차이가있다. 하지만 누군가가 내 메서드에서 할당 한 후 확인란의 상태를 설정하려면 항목의 integerValue 메서드를 호출하는 것으로 나타납니다. 따라서이 문제를 해결하려면 item의 integerValue 메서드가 적절한 값을 반환하도록해야합니다.