2011-10-24 4 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が非nilのある

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

フェッチコマンドの後にアレイコントローラが実際に配置されていることを確認しましたか? (注:オブジェクトはすぐにフェッチされません。次回の実行ループでテストする必要があります)テストアプリケーションで動作しています。 –

関連する問題