문제

스노우 레오파드 앱을 개발하기위한 경로를 결정하려고합니다. 먼저, 나는 명백한 차이점을 시작해야합니다.

NSTableView 동일한 "요소"(행)의 다른 부분을 나타 내기 위해 여러 개의 데이터 열이있을 수 있습니다. NSCollectionView 데이터 그리드도 표시 할 수 있지만 모든 행+열 콤보는 고유 한 요소입니다. 내 목적을 위해 단일 열을 다루고 있다고 가정합니다.

  1. 내가 말할 수있는 한, NSCollectionView 항목이 있습니다 NSView모두 동일한 치수 여야합니다. 또한,와 달리 NSTableView, CollectionView 항목은 다음에 복사됩니다 NSCollectionView a dataSource (나는 이것에 대해 확실하지 않습니다. 내가 틀렸다면 제발 바로 잡아주세요).

  2. NSTableView 용도 NSCells 행 표시를 사용자 정의하기로 결정한 경우. 처럼 NSCell 그렇지 않습니다 NSResponder, 이벤트를 어떻게 처리합니까 (iTunes의 화살표가 작동하는 방식과 같이 셀에 일종의 액세서리를 추가하고 싶다면 (iTunes는 탄소). NSCell IB의 서브 클래스는 NSControl 형제들,하지만 내가 원한다면 어떨까요? MySweetView an NSCell?).

  3. 둘 다 바인딩과 관련하여 동일하게 작동하는 것 같습니다. 맞습니까?

  4. 드디어, NSCollectionView 요소의 애니메이션 (예를 들어 항목을 다시 조절하거나 필터링하기 위해)과 잘 작동하는 것으로 보입니다. 할 수 있다 NSTableView 줄이 있나요?

내가 고려해야 할 다른 것이 있습니까?

도움이 되었습니까?

해결책

  1. 여기서 차이점은 테이블 뷰에서 모든 행이 하나의 항목이고 열에는 해당 항목의 다른 측면 (속성)이 표시된다는 것입니다. 컬렉션보기에서 모든 행 열 교차로는 하나의 항목입니다.
  2. 나는 이것을하지 않았지만 구현을 시도합니다 tableView:didClickTableColumn: 당신의 테이블에서 대의원. 이 방법은 10.6에서 새롭습니다. 당신은 가져 가야 할 것입니다 [NSApp currentEvent], 그리고 아마도 열의 셀의 메소드로 전달하십시오.
  3. 테이블 뷰를 사용하면 열을 바인딩합니다. 당신은보기를 바인딩하지 않습니다 (어쨌든 내용을 제공하지 말고 선택 색인과 같은 것들에 대한보기를 바인딩합니다). 컬렉션보기에는 열이 없으므로 ( #1 참조) 항상보기를 바인딩합니다.
  4. 아니.

다른 팁

fwiw, nstableview는 Appkit의 매우 오래된 부분이며 약간 crufty입니다.

플랫폼을 처음 접한다면 먼저 NscollectionView 주변에서 머리를 잡는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top