2011-10-24 6 views
0

NSComboBox을 채울 수 없습니다. 나는 NSArrayController에 프로그래밍 방식으로 결합하기 위해 노력하고있어 :NSComboBox를 NSArrayController에 프로그래밍 방식으로 바인딩

frequencyArrayController = [[NSArrayController alloc] initWithContent:nil]; 
[frequencyArrayController setManagedObjectContext:[[NSApp mainWindowDocument] managedObjectContext]]; 
[frequencyArrayController setEntityName:@"Frequency"]; 
[frequencyArrayController fetch:self]; 
[frequencyComboBox bind:@"contentValues" toObject:frequencyArrayController withKeyPath:@"arrangedObjects.DisplayName" options:nil]; 

나는 무엇을 놓치고?

필드가 NSPanel에 있으며 앱이 시작될 때 아직 열리지 않습니다. 나는 그것을 바인딩하고 펜촉을 미리로드하고 있는데 이것이 문제입니까?

답변

2

어레이 컨트롤러에 어떤 시점에서 가져 오기를 지시해야합니다.

편집 : 당신의 MOC와 IBOutlets 비 전무

arrayController = [[NSArrayController alloc] init]; 
    [arrayController setManagedObjectContext:self.managedObjectContext]; 
    [arrayController setEntityName:@"Entity"]; 
    [comboBox bind:@"contentValues" toObject:arrayController   
     withKeyPath:@"arrangedObjects.name" options:nil]; 
    [arrayController fetch:self]; 

    [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
     NSLog(@"%@", comboBox.objectValues); 
    }]; 

확인 : 여기 테스트에 사용하고 예제 코드가 있습니다.

+0

나는 이것을 아무런 결과없이 시도했다 : [frequencyArrayController fetch : self]; – aneuryzm

+0

어레이 컨트롤러가 실제로 fetch 명령 후에 채워지는 것을 확인 했습니까? (참고 : 개체가 즉시 가져 오지 않으면 다음 실행 루프에서 테스트해야합니다.) 테스트 응용 프로그램에서 작동합니다. –

관련 문제