以编程方式将 NSComboBox 绑定到 NSArrayController

发布于 2024-12-11 17:37:20 字数 586 浏览 3 评论 0原文

我无法填充 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 上,应用启动时尚未打开。我正在绑定它并提前加载笔尖,这是一个问题吗?

I can't populate a NSComboBox. I'm trying to bind it programmatically to an 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];

What am I missing?

The field is on a NSPanel which is not open yet when the app starts. I'm binding it and loading the nib in advance, is this an issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

塔塔猫 2024-12-18 17:37:20

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

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

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

You need to tell your array controller to fetch: at some point.

Edit: Here's the example code I'm using to test:

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

Check that your MOC and IBOutlets are non-nil.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文