2011-06-13 3 views
1

OutlineView에서 데이터 목록을 보여주는 앱을 만들고 있습니다. 컨트롤러는 행의 상태 NSImageCell 이미지를 변경하라는 알림을받습니다. 문제는 OutlineView 행에서 셀을 새로 고칠 수 없다는 것입니다.NSImageCell 이미지 변경 문제

지금까지 다음 코드에서 각 옵션을 시도했습니다.

id dataCell = [self dataCellWithID:@"cellID" andRow:rowNumber]; 
if (dataCell && [dataCell isKindOfClass:[NSImageCell class]]) { 
    //OPTION 1 
    NSImageCell *statusIconCell = (NSImageCell *)dataCell;   
    [statusIconCell setImage:[NSImage imageNamed:[self syncIconNameForStatus: syncState]]]; 

    //OPTION 2 
    [dataCell setObjectValue:[NSImage imageNamed:[self syncIconNameForStatus: syncState]]]; 
    [dataCell reloadData]; 

    //OPTION 3 
    NSIndexSet *rowIndex = [NSIndexSet indexSetWithIndex:listRow]; 
    NSIndexSet *columnIndex = [NSIndexSet indexSetWithIndex:[outlineView columnWithIdentifier:@"cellID"]]; 
    [outlineView reloadDataForRowIndexes:rowIndex columnIndexes:columnIndex];  
} 

아이디어가 있으십니까?

미리 감사드립니다.

미키 완.

답변

1

해결책을 찾았습니다!

id dataCell = [self dataCellWithID:@"cellID" andRow:listRow]; 
if (dataCell && [dataCell isKindOfClass:[NSImageCell class]]) { 
    NSImageCell *statusIconCell = (NSImageCell *)dataCell;   
    [statusIconCell setImage:[NSImage imageNamed:[self syncIconNameForStatus:syncState]]]; 
    [[statusIconCell controlView] setNeedsDisplay:YES]; 
}