2009-03-25 6 views
0

저는 Cocoa 응용 프로그램에서 테이블보기를 사용하고 있습니다. 당신이 볼 수 있듯이NSTableView 정렬이 올바르지 않습니다.

- (void)doubleClickInTable:(id)sender { 
     int rowIndex = [sender selectedRow]; 
     if (rowIndex != -1) { 
     [userEditController setData:[[self users] objectAtIndex:rowIndex]]; 
     [self showUserEditPanel]; 
    } 
} 

에서, EditController를 편집되고있는 객체를받습니다 발생할 때 나는 다음과 같은 방법을 할 수있는 두 번 클릭 동작을 설정했습니다. 이 객체는 소스 배열의 rowIndex에있는 객체입니다. 이것은 대부분의 경우에 잘 작동하지만 일단 정렬을 테스트하기 시작하면 잘못된 객체가 설정됩니다. 이는 테이블에서 클릭 된 행의 인덱스가 행 정렬 이동으로 인해 소스 배열과 다르기 때문입니다.

이 문제를 어떻게 해결합니까?

답변

2

동일한 정렬 설명자를 사용하여 정렬 된 배열을 만들고 그 안에 rowIndex에서 개체를 검색 할 수 있습니다. 다른 방법으로, 배열 컨트롤러를 사용하는 경우 컨트롤러의 arrangedObjects 배열에있는 해당 인덱스에서 이미 정렬 된 객체 (즉 이름)를 검색하는 것입니다.

+0

NSArrayController를 Peter의 언급대로 사용하는 것이 좋습니다. – sbooth