2009-08-07 3 views
0

NSTableView가 있고 selectedCell 요소가 변경 될 때마다 무언가를하고 싶습니다.언제 셀 선택이 변경됩니까?

그래서, 내 테이블보기가있는 tableView라고, 이것은 내가 관찰 할 것입니다 : 내가 관찰 키 - 값을 사용하여 시도

[tableView selectedCell] 

을, 그러나 그것은 작동하지 않았다, 또는 어쩌면 내가했다 잘못하고있다. 어떤 아이디어?

답변

1

코코아 자체 클래스의 대부분의 속성은 관찰 할 수 없습니다. 속성을 관찰 할 수있는 경우 해당 속성에 대한 설명서에 명시 적으로 표시됩니다. 문서에서 부동산을 관찰 할 수 없다고 말하지 않을 경우 부동산은 그렇지 않다고 가정합니다.

또한 존재하지 않는 속성은 두 번 관찰 할 수 없습니다. NSTableViewNSOutlineView에 대한 설명서에는 "selectedCell"이라는 메서드가 없습니다. 하나도 없다고 가정해야합니다.

사용자가 다른 행을 선택하는시기를 알고 싶으면 테이블보기의 대리인이되어야합니다. 응답하면 위임 메시지를 보냅니다.

+0

selectedCell는 NSControl하는 방법입니다 tableViewSelectionIsChanging:, 찾고있다 같아요. 커서가 NSTableView의 새 셀에 있음을 알릴 수있는 다른 방법이 있습니까? –

+0

아, 내 실수 야. 나는 항상 테이블 뷰가 제어 특성을 가지고 있음을 잊는다. 그럼에도 불구하고'selectedCell'이 테이블 뷰에서 작동하는지 모르겠습니다. 사용자가 셀을 편집 할 때를 감지하는 데에는 그에 대한 대리 메서드가 있습니다. –

+0

그런데 데이터를 편집 가능하게 만들려고한다면 셀 단위로 작업하는 것이 그 방법이 아닙니다. 데이터 소스가되고'tableView : setObjectValue : forTableColumn : row :'을 구현하거나 테이블 열을 배열을 유지하는 컨트롤러에 바인드하고 컨트롤러가 편집을 허용하고 모델 객체가 변경 가능해야합니다. 당신은 그렇지 않다). –

-1

NSTableView은 각 열에 대해 하나의 dataCell 개체를 사용합니다. selectedCell은 잘못된 방법입니다. selectedColumn을 사용하여 선택한 열을 가져온 다음 dataCell을 요청할 수 있습니다.

는 그리고 : 나는 당신이 NSTableView는이 상속 NSTableView는 위임 방법 tableViewSelectionDidChange:

관련 문제