NSArrayController를 통해 NSMutableArray에 바인딩하는 NSTableView가 있습니다. 배열에있는 것은 파생 클래스입니다. 테이블의 처음 몇 열은 기본 클래스에있는 속성에 바인딩됩니다. 그건 모두 잘 작동합니다.NSTableView의 조건부 열 값은 무엇입니까?
문제가 발생하는 곳은 행이 특정 하위 클래스에 매핑되는 경우에만 채워 져야하는 열입니다. 컬럼이 의미하는 속성은 기본 클래스 측면에서 의미가 없으므로 해당 서브 클래스에만 존재합니다. 사용자는 첫 번째 두 열에서 왜 세 번째 열의 셀이 채워지거나 편집 가능한지 알게됩니다.
세 번째 열의 값에 대한 바인딩은 "foo.name"과 같은 모델 경로가있는 arrangedObjects에 있습니다. 여기서 foo는 하위 클래스의 속성입니다. 그러나 계층 구조의 다른 하위 클래스는 foo에 대해 키 - 값을 준수하지 않으므로이 방법은 작동하지 않습니다.
내 유일한 선택은 모든 사람이 그것에 응답하기 위해 foo를 기본 클래스의 속성으로 설정하는 것처럼 보이지만 모델 개체의 인터페이스를 혼란스럽게합니다.
누구나 이런 상황에 대해 깨끗한 디자인을 제안 했습니까? 드문 일이 아닙니다. (저는 코코아를 처음 접했을뿐입니다.)