2011-09-30 5 views
4

4 개의 열이있는 테이블 뷰가 있습니다. 주먹 하나는 텍스트가 있고 다른 하나는 체크 상자입니다.
하나의 특정 행에서 3 개의 체크 박스 중 2 개를 비활성화해야합니다. 행 번호를 NSInteger 변수에 유지합니다.NSTableView에서 특정 셀 비활성화

은 내가 구현했습니다 : 나는 열 식별자를 확인

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 

은 내가 행이 정확한지 확인하고 해제하는 셀을 설정하는 것이 알면 내가 오른쪽 열에서 오전 여부를 알 수 있습니다. 코드는 다음과 같습니다.

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 
{  
    if(([[aTableColumn identifier] isEqualToString:@"column1"]) || ([[aTableColumn identifier] isEqualToString:@"column2"])) 
    { 
     if (rowIndex == myindex) // myindex holds the row index where I need to disable the cells 
     { 
      [aCell setEnabled:NO]; 
     } 
    } 
    else 
    { 
     return; 
    } 
} 

이상한 일이 있습니다. 내 특정 행에 대한 Colum1과 Colum2는 다른 행을 클릭하기 전까지는 사용할 수 없습니다. 그러면 모든 행에서이 두 열을 사용할 수 없게됩니다.

이 두 개의 매우 구체적인 셀은 어떻게 비활성화합니까? (myindex 행에서만 column1column2 만 가능)

이것은 Mac OS X 앱이며 iOS 앱이 아닙니다.
감사합니다.

답변

4

두 경우 모두 매번 enabled 속성을 명시 적으로 설정해야합니다.

//... 
else 
{ 
    [aCell setEnabled:YES]; 
} 
+0

감사합니다. 그랬어. –

관련 문제