nstoolbarでnscomboboxを取得してデータソースとデリゲートにメッセージを送信する方法

StackOverflow https://stackoverflow.com/questions/4868722

質問

私はnstoolbarにnscomboboxを持っています、そして、私はコンボボックスにそのデータソースとデリゲートにメッセージを送信することを望んでいます。

私のクラスはを採用しています NSComboBoxDelegateNSComboBoxDataSource プロトコル。このようなコンボボックスを作成します

    NSRect comboBoxRect = NSMakeRect(0, 0, 175, 20);
    NSComboBox *sourceComboBox = [[NSComboBox alloc] initWithFrame:comboBoxRect];
    [sourceComboBox setDataSource:self];
    [sourceComboBox setDelegate:self];
    [sourceComboBox setUsesDataSource:YES];
    [sourceComboBox setEditable:NO];

    NSToolbarItem *sourceComboBoxItem = [[NSToobarItem alloc] initWithItemIdentifier:@"MyID"];
    [sourceComboBoxItem setView:sourceComboBox];
    [sourceComboBoxItem setMinSize:NSMakeSize(175*1.2, SEGMENT_HEIGHT)];
    [sourceComboBoxItem setMaxSize:NSMakeSize(175*1.2, SEGMENT_HEIGHT)];
    [sourceComboBoxItem setDelegate:self];
    [sourceComboBoxItem setTag:4];

また、次のDataSourceとDelegateメソッドにはブレークポイントがありますが、これらの方法には何も送信されていません。

- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index;
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox;
- (void)comboBoxSelectionDidChange:(NSNotification *)notification;

私が間違っていることについての提案はありますか?ありがとうございました。

役に立ちましたか?

解決

インターフェイスビルダーにコンボボックスを作成し、カスタムクラスをコンボボックスセルへのデータソースとして、デリゲートをコンボボックスに設定することで機能しました。採用する代わりに NSComboBoxDataSource, 、私は採用しました NSComboBoxCellDataSource 代わりは。

なぜ私の最初の方法が機能しなかったのかわかりませんが、この新しい方法ではうまくいくようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top