Как получить NSComboBox в NSTOOLBAR для отправки сообщений в дат данных и делегировать

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

Вопрос

У меня есть NSCombobox в Nstoolbar, и я хочу, чтобы комбо -поле отправляли сообщения на свой дат данных и делегируйте.

Мой класс принимает NSComboBoxDelegate а также NSComboBoxDataSource протоколы. Я создаю свою коробку для сочетания

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

Я также реализую следующие методы данных, а в них были точки разрыва, но ничто не отправляется в эти методы.

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

Есть предложения о том, что я могу сделать не так? Спасибо.

Это было полезно?

Решение

Я взял его на работу, создав комбо -поле в интерфейсном строителе, а затем установив свой пользовательский класс в качестве источника данных для ячейки сочетания сочетания и делегата в комбо -поле. Вместо принятия NSComboBoxDataSource, Я принял NSComboBoxCellDataSource вместо.

Я не знаю, почему мой первый метод не сработал, но этот новый метод, кажется, делает просто отлично.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top