2009-09-21 3 views
3

Motion의 속성보기와 비슷한보기를 만들려고합니다. 내 재산 객체의NSTableView, 여러 셀 및 바인딩

ScreenShot

각은로 표시하고자하는 세포의 종류에 대한 정의가 포함되어 있습니다. 그러나 동시에 바인딩을 사용하여 값을 자동으로 업데이트하여 다른 곳에서 변경할 수 있도록하고 싶습니다.

나는이 문제에 대해 몇 가지 다른 방법을 시도했다.

  • 여러 세포와 dataCellForTableColumn:이 모든 종류의 세포가 제대로 일이 렌더링 수 있지만, 나는 바인딩을 잃게됩니다.

  • NSProxy : 또한 모든 메서드를 선택한 셀 유형으로 전달하겠다고 생각한 프록시 개체를 사용해 보았습니다.하지만 여기서는 바인딩이 제대로 작동하지 않는 것 같습니다.

이전에 이런 종류의 문제에 경험이있는 사람이 있습니까? 아니면 바인딩이 그것을 자르지 않는 경우 중 하나이며, 나는 무거운 짐을 들어야 할 것입니까?

건배!

답변

0

실제로 테스트하지는 않았지만 dataCellForTableColumn을 사용할 때 바인딩을 잃어서는 안됩니다. row :? 바인딩과 관련하여 시도한 것을 좀 더 자세하게 설명 할 수 있습니까?

열 값 바인딩을 개체의 "값"속성으로 설정할 수 있어야합니다. 그런 다음 dataCellForTableColumn : 행에 올바른 유형의 셀을 반환하면 올바르게 표시되어야합니다.

편집 : - 나는 테이블 컬럼에 NSArrayController을 구속했고, 나는를 사용하는 경우 값이 제대로 표시 --- 전망 :

+0

그것은 당신이 말했듯이 대부분으로의 대 세포에 대해 무상 잘못된 조언을 삭제 NSTextFieldCell. 그들은 그것들을 바꿀 때 올바르게 편집됩니다 (Property 객체에 적절한 setObjectValue :를 호출합니다). 그러나 NSSliderCell을 반환하면 올바르게 값을 설정하지만 슬라이더를 끌면 그에 따라 값이 설정되지 않습니다. –

+0

방금 ​​테스트 예제를 시도했지만 설명대로 실패합니다. 셀을 반환하기 전에 셀에 올바르게 바인딩을 설정하지 않았는지 잘 모르겠습니다. 누군가가 더 잘 알고 있기를 바랍니다. –

+0

"올바른"방법이 아직 있는지 확실하지 않지만 테이블 뷰의 데이터 소스를 설정하고 tableView : setObjectValue : forTableColumn : row : 만 구현하면 차례대로 setObjectValue :가 내 Property에 대해 호출됩니다 모든 클래스가 작동하는 것처럼 보입니다. 나는 다른 방법이 있다면 듣고 싶지만, 지금은 나에게 적합하다. –