2012-02-17 2 views
4

데이터 셀을 표시하는 사용자 정의 NSTableRowView 구현이 있습니다. 테이블에는 간단한 NSTextField을 사용하는 그룹 행도 있습니다.다음 행이 그룹 행인지 여부에 따라 사용자 정의 NSTableRowView을 그립니다.

내 사용자 정의 행보기에서 다음 행이 데이터 셀 (즉, 내 사용자 정의 행)인지 또는 그룹 헤더인지에 따라 하위 구분 기호의 도면을 약간 변경해야합니다.

그룹 머리글의 경우 구분 기호를 그릴 필요가 없습니다. 그렇지 않으면 스크린 샷에 표시된 것과 같이 2px 구분 기호로 끝납니다.

[NSTableRowView drawBackgroundInRect:...]에서 다음 (또는 이전) NSTableRowView 인스턴스에 대한 참조를 얻을 수있는 방법이 있습니까?

separators

답변

8

오전 나는 당신의 테이블 뷰 대리인이 -tableView:rowViewForRow:를 구현하는 수정?

그렇다면, 테이블 뷰 대리인의 도움을 보자

  1. 사용자 정의 행 클래스에 속성 drawsSeparator를 추가합니다.
  2. 행 클래스에서 drawRect에있는이 속성의 값을 확인하고 그에 맞게 그림을 조정하십시오.
  3. 행의 drawsSeparatorrowViewForRow (으)로 설정하십시오. -tableView:isGroupRow:row + 1과 함께 호출하여 다음 행이 그룹인지 여부를 확인할 수 있습니다 (마지막 행에 있지 않은지 확인한 후).
관련 문제