NSComboBox - как я могу реализовать делегат для 2 различных комбинированных списков?

Я реализовал NSComboBoxDelegate:

-(void)comboBoxSelectionDidChange:(NSNotification *)notification{

}

- (void)controlTextDidEndEditing:(NSNotification *)aNotification{

}

- (void)comboBoxWillPopUp:(NSNotification *)notification{

}

- (void)comboBoxWillDismiss:(NSNotification *)notification{
}

но у меня есть 2 комбинированных списка - с 2 различными функциями. Есть ли способ узнать, какой comboBox нет на ходу, и действовать соответственно?

или мне нужно реализовать 2 разных делегата снаружи? и если так - есть ли простой способ передать информацию обратно в мой viewcontroller?

Есть ли способ получить информацию об отправителе уведомления?

3 ответа

Решение

Для изменения текста (controlTextDidEndEditing, controlTextDidChange...) см. Следующий пример.

- (void)controlTextDidEndEditing:(NSNotification *)obj {
    if ([obj object] == combobox1) {

    }
    else if ([obj object] == combobox2) {

    }
}

Что касается изменения выбора, вам необходимо создать соединения IBAction для соответствующих объектов.

Объект уведомления ([notification object] или же notification.object) будет поле со списком, которое отправило уведомление.

Почему вы не используете теги? Вы можете назначить тег 101 одному из них и 102 другому, тогда, когда они запускают делегата, вам просто нужно иметь предложение if, чтобы проверить тег объекта.

Другие вопросы по тегам