Привязка NSComboBox к NSArrayController программно - PullRequest
0 голосов
/ 24 октября 2011

Я не могу заполнить 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, которое еще не открыто, когда приложениеначинается.Я связываю это и загружаю перо заранее, это проблема?

1 Ответ

2 голосов
/ 24 октября 2011

Вы должны указать контроллеру массива на выборку: в какой-то момент.

Редактировать: Вот пример кода, который я использую для проверки:

    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); 
    }];

Проверьте, что ваш MOC иIBOutlets не ноль.

...