2012-08-04 4 views
0

각 셀에 NSPopUpButtonCell이 포함 된 NSTableView가 있습니다. 나는 NSPopUpButtonCell의 액션을 단지 선택된 인덱스를 검사하는 방법으로 설정했다. (이렇게하면 저장되고 테이블이 재로드 될 수있다.)NSPopUpButtonCell indexOfSelectedItem은 항상 0을 반환합니다.

thePopUpButtonCell.action = @selector(popUpChangedValue); 

-(void)popUpChangedValue { 

    NSLog(@"%ld", [thePopUpButtonCell indexOfSelectedItem]); 

} 

내가 선택한 항목이 무엇이든 상관없이, 선택한 색인은 0이 아니라고하더라도 말은하지 않습니다. 이 원인을 알고 있습니까?

+0

PopUpButtonCell이란 무엇입니까? IBOutlet이 IB의 셀에 연결되어 있습니까? – rdelmar

+0

@rdelmar 예입니다. –

+0

테이블에서 이렇게하는 것이 아닙니다. PopUpButtonCell을 기록하면 클릭 한 행에 관계없이 동일한 인스턴스가 반환된다는 것을 알 수 있습니다. – rdelmar

답변

3

내가하는 방식은 바인딩입니다. 배열의 필드 (NSDictionary의 키 값 쌍)가 있어야 팝업 선택 값을 유지할 수 있습니다. IB에서는 배열에 컨텐트 배열이 바인딩 된 배열 컨트롤러가 있습니다 (위에서 언급 한 사전 포함). 팝업이있는 열의 사전 값은 사전에 키 이름의 모델 키 경로가있는 배열 컨트롤러의 arrangedObject에 바인딩됩니다. 팝업에서 선택을 변경하면 배열의 값은 바인딩의 마법을 통해 업데이트됩니다.

0

귀하의 thePopUpButtonCell은 아마도 또한 nil입니까? 어쩌면 유지 등의 문제.

+0

XIB 파일의 NSPopUpButtonCell에 연결했습니다. 출력하면''이 표시됩니다. 'NSLog (@ "% @", thePopUpButtonCell);'다른 아이디어가 있습니까? –

관련 문제