2012-05-22 3 views
1

배경 :NSTableView - 입력하여 색인 선택

나는 이름 목록이있는 tableview 있습니다. 목록에서 이름을 클릭하면 추가 세부 정보가 창의 다른 섹션에 표시됩니다. 모든 것이 연결되어 올바르게 작동합니다. 그러나

...

나는이 테이블 유형 선택을 사용하고자하는 다음과 같은 난관에 실행 한

:

나는 (테이블 선택한 상태)의 이름을 입력하기 시작

그것을 제대로 하이라이트 의 해당 이름은이지만 테이블의 오른쪽에있는 자세한 정보는 변경되지 않습니다.

나는 이유는 상세 정보를 변경하기위한 코드를 알고는 목록에서 이름을 선택 할 때 클릭에만 호출되는 IBAction를 방법에, 그리고 [보낸 사람이 clickedRow] 인덱스를 얻기 위해 전화 사용 선택한 이름의

나는 [tableView selectedRow] (선택 되었기 때문에 클릭하지 않았 음)가 의심 스럽지만이 검사를 수행하는 위치 나 방법을 확실히 알지 못합니다. 나는 또한 액션 메시지를 전송하지 "유형 선택"때문에 생각 해요

..., 나는 [보낸 사람 selectedRow]을 사용할 수 없습니다 아니라 [있는 tableView selectedRow]를 사용합니다

질문 :

유형 선택을 통해 테이블 ​​뷰의 선택된 행이 변경된시기를 어떻게 알 수 있습니까?

감사합니다.

답변

0

컨트롤러에 tableViewSelectionDidChange: 대리자 메서드를 구현하고 컨트롤러가 NSTableView의 대리자인지 확인하십시오. 문서에서

- (void)tableViewSelectionDidChange:(NSNotification *)aNotification { 
    [relatedView updateInformationFromRow:[[aNotification object] selectedRow]]; 
} 

:

당신은 같은 것을 사용하여보기를 업데이트 할 수

tableViewSelectionDidChange: 테이블 뷰의 선택이 변경된 대리자를 통지합니다.

그 안에는 관련보기가 업데이트됩니다. 당신은 문서에서 다시, NSTableViewSelectionDidChangeNotification 될 것 aNotification의 객체를 사용할 수있다 :

는 NSTableView는 객체의 선택이 변경 후 게시. 알림 개체는 선택 항목이 변경된 테이블보기입니다. 이 알림에 userInfo 사전이 없습니다.