以编程方式将NSComboBox绑定到NSArrayController

时间:2011-10-24 12:32:48

标签: objective-c cocoa cocoa-bindings 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,该应用程序启动时尚未打开。我绑定它并提前加载笔尖,这是一个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要告诉您的数组控制器在某个时刻获取:

编辑:这是我用来测试的示例代码:

    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是否为零。