2011-05-09 6 views
0

나는 테이블을 넘치게하고있는 클래스에 대한 대표자 & 데이터 소스 링크를 사용하여 NSTableView &을 생성합니다. 클래스에서 나는 테이블에 대한 값을 저장하기 위해 NSMutableArray를 사용하고 있습니다. 테이블에서 정렬 할 수 있습니까? 어떻게해야합니까? 열의 값에 따라 정렬하고 싶습니다. 나는 정렬 헤이 & 선택기를 사용하고 있지만 실행할 때이 오류이 문제를 해결하는 방법을 [<NSCFString 0x18da00> valueForUndefinedKey:]: this class is not key value coding-compliant for the key name.NSTableView로 정렬

을 얻고있다.

답변

3

두 가지 방법 중 하나로 접근 할 수 있습니다. 자신이하는 일을 잘 모르는 경우 쉽게 실패 할 수있는 방법은 콘텐츠 배열을 정렬하는 것입니다. NSMutableArray-sort...: 메서드를 사용하여 정렬 할 수 있으며 결과가 표에 정렬 된 것으로 표시됩니다.

그러나 더 좋은 방법은 NSSortDescriptor (코드 또는 Interface Builder를 사용하여 설정할 수 있음)을 사용하여 테이블 정렬 출력을 자체적으로 만드는 것입니다. 맞춤 클래스를 사용하여 정렬 설명자를 가져 오려면 KVC 호환을해야하지만 운 좋게도 NSString으로 만 작업하므로 작업이 이미 완료되었습니다. 인터페이스 작성기 나 코드에서 정렬 설명 자의 키를 self (문자열 자체와 인스턴스 변수를 비교하지 않으므로)으로 설정하고 선택자는 compare: (간단한 비교 만하면되므로 NSString)으로 설정하십시오. 이 메소드를 구현). 인터페이스 빌더에서 쉽게 할 수 있습니다 (self을 키로 설정하면 compare:이 나타납니다). 복잡한 정렬 설명자를 만들고 싶다면 코드로 작성해야합니다.

+0

감사하지만 NSString 및 기타 하나의 열을 사용하고 있습니다 int입니다. 자체를 사용하여 정렬 할 수 있지만 다른 열은 작동하지 않습니다. –

+1

그들은 서로 관련이 있습니까? 개별 행이 중요합니까, 아니면 최소에서 최대로 정렬되어야합니까? 주문을해야하는 경우 어렵지 않지만 행 자체가 관련되어 있다면 더 어려운 작업을해야 할 것입니다. –

+0

도움에 감사드립니다 ... 그렇습니다 그들은 관련되어 있습니다. 하지만 내가 사용하고있는 NSMutableArray를 정렬하여 하나의 솔루션을 찾았습니다. –

2

테이블의 값이 NSStrings 인 것처럼 보입니다. NSString이 키로 응답하는 것을 선택해야합니다. 아마도 self 키가 그 트릭을 할 것입니다.