NSComboBox - выбранное действие элемента?

есть ли IBAction для выбора элемента в NSComboBox?

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

* Я делаю приложение для Mac, а не для iOS


person Aviram Netanel    schedule 21.06.2015    source источник


Ответы (2)


Я считаю, что вы можете различать два события в своем делегате, но не через IBAction. Протокол NSComboBoxDelegate отвечает на селектор - (void)comboBoxSelectionDidChange:(NSNotification *)notification. Вы можете использовать это, чтобы определить, когда элемент был выбран из раскрывающегося списка, и использовать селектор делегатов редактирования текста - (void)controlTextDidEndEditing:(NSNotification *)aNotification, чтобы определить, когда пользователь ввел текст напрямую.

person sbooth    schedule 21.06.2015

поэтому я добавил этот код в свой viewController.m:

-(void)comboBoxSelectionDidChange:(NSNotification *)notification{
    NSLog(@"comboBoxSelectionDidChange");
}

- (void)controlTextDidEndEditing:(NSNotification *)aNotification{
     NSLog(@"controlTextDidEndEditing");
}

Затем подключил поле со списком "cmbbox" к делегату на viewDidLoad:

- (void)viewDidLoad {
      [super viewDidLoad];
      self.cmbbox.delegate = self;
}

и, наконец, добавил протокол делегата NSComboBoxDelegate в заголовочный файл viewController.h:

@interface ViewController : NSViewController <NSComboBoxDelegate>
person Aviram Netanel    schedule 23.06.2015