2012-06-20 1 views
0

두 개의 콤보 상자가있는 창이 있다고 가정 해 봅시다. 창을 제어하는 ​​NSWindowController에는 콤보 상자 내용 값에 바인딩되는 두 개의 변경 가능한 배열이 있습니다.바운드 NSMutableArray가 업데이트 될 때 업데이트 할 NSComboBox가 있습니다

첫 번째 콤보 상자는 고정 값을 사용하지만 두 번째 콤보 값은 첫 번째 콤보 선택한 값에 따라 달라집니다.

관련 변경 가능 어레이가 업데이트 될 때 두 번째 콤보 상자의 내용을 다시로드하려면 어떻게해야합니까? (또는이 작업을 수행하기 위해 어레이를 어떻게 업데이트해야합니까?)?

답변

0

일반 접근 방법을 통해 두 번째 배열의 값을 설정하면 올바른 업데이트 메시지가 모든 바인딩 된 값과 다른 수신기에 전파되어야합니다.

// When first combo box changes value 
// NSArray *newArray = // Fancy algorithm.. 
self.secondArray = newArray; 

두 번째 콤보 상자를 업데이트해야합니다.

NSMutableArray 속성을 백업하려는 인스턴스를 변경하지 않으려는 경우 here과 같은 변경 가능한 접근 자 메서드를 사용할 수 있습니다. 배열 자체를 변경하지 않고 변경 가능한 배열의 내용을 변경할 수 있습니다. 그리고 KVC/KVO 시스템은 변경 사항을 청취자에게 전달합니다.