2009-07-19 5 views
0

NSPopUpButtonCells 열이 포함 된 NSTable 있습니다. 테이블의 다른 열의 내용을 기반으로 NSPopUpButtonCell을 필터링하고 싶습니다. 이것은 상당히 쉬운 솔루션을 가져야 만하는 것처럼 느껴지 겠지만, 잠시 후 필자가 생각하는 솔루션은 매우 복잡합니다. 내 가장 큰 문제는 응용 프로그램이 실행 중이고 NSPopUpButtonCell을 클릭하면 필터가 시작될 메뉴가 표시되기 전에 활성화 될 항목을 찾을 수 없다는 것입니다. tableViewSelectionIsChanging 같은 것들을 시도해 봤지만, PopUpButton에 대한 목록이 활성화 된 후에 모두 활성화 된 것처럼 보입니다.NSTableView에서 NSPopUpButtonCell의 데이터 필터링

도움을 주시면 감사하겠습니다.

답변

1

간단한 해결책이 있음이 드러났습니다. NSArrayController를 사용하여 테이블의 행을 제어하고있었습니다. 각 행은 InputCell 클래스의 객체였습니다. InputCell 클래스에 NSArray를 반환하는 메서드를 추가했습니다.이 메서드는 [self valueForKey :]를 사용하여 셀의 필터 조건에 따라 다른 배열을 만듭니다. 바인딩을 사용하여 NSPopUpButtonCell의 내용을 NSArrayController를 통해 배열에 바인딩 할 수 있습니다.

0

tableView:willDisplayCell: 대리자 메서드에서 셀에 사용중인 메뉴의 복사본을 만들거나 필터링하거나 채우고 셀 메뉴로 설정할 수 있습니다. 원하는 효과를 얻을 수 있어야합니다.