2010-11-30 2 views
8

특정 표제 열을 클릭 할 때 테이블의 데이터가 뒤집히거나 거꾸로 정렬 될 때 NSTableView가 있습니다. 나는 과 NSTableColumn을 검사했으나 이것을 막을 수있는 방법을 찾지 못했습니다. 누군가가 특정 열의 머리글을 클릭하여이 정렬을 비활성화하는 것을 도울 수 있다면 나는 의무가있다.NSTableVIew에서 정렬을 비활성화하는 방법?

+1

젠장, 질문 제목 앞에 "[Objective C]"를 붙이지 마십시오. 하이픈이 누락되었을뿐만 아니라 그 지점을 놓치고 있습니다. 그것이 바로 태그입니다. –

+0

@ Jonathan : 나는 당신이 어떤 대답을 내놓았을 때 감사 할 것입니다. – Omayr

+1

Cocoa Bindings를 사용합니까? 당신의 설정은 무엇입니까? – Yuji

답변

36

NSTableView의 정렬은 sortDescriptors으로 수행됩니다 (here 참조).

NSTableColumn은 사용의 sortDescriptorPrototype (here 참조) 데이터를 관리 할 수 ​​dataSource를 사용하는 경우 다음 등, 당신은 열 머리글을 클릭 한 횟수에 따라

NSTableView의 종류 기술자를 생성하는 정렬 설명자를 대리자 메서드 tableView:sortDescriptorsDidChange: (here 참조)을 통해 전달합니다. 정렬을 중지하려면 변경 메시지를 무시하면됩니다.

Cocoa 바인딩을 사용하여 데이터를 관리하는 경우 테이블 열에서 정렬 설명자가 생성되고 NSArrayController으로 설정됩니다. 그것을 막으려면 테이블 열 바인딩의 속성을 열고 value을 선택하고 "Sort Descriptor를 만듭니다"를 선택 해제하십시오.

+0

Walaah! 그게 굉장 했어, 나는 바인딩을 사용하고 있었고 문제는 지금 해결되었다. 고마워 많은 친구 – Omayr

+0

감사합니다! 어떻게 그럴 수 있습니까? 중지하려면 테이블 열의 바인딩 관리자를 열고 값을 선택하고 "Sort Descriptor를 만듭니다."를 선택합니다. – sharkyenergy

+0

항상 동일한 정렬 설명자 배열을 반환하고 'NSTableView'를이 속성에 바인딩하는 속성을 만들 수 있습니다. – Flovdis