Я новичок в программировании Obj-C/Cocoa, и у меня возникла проблема с динамическим добавлением элементов меню в экземпляр NSMenu и с селектором действий элементов, уже установленным при вставке ,Добавление элемента в NSMenu с предустановленным селектором действий
Я могу добавить элементы динамического меню в порядке, но селектор действий не запускается, когда элемент щелкнут через меню.
Первая строка ниже - это строка кода, которую я использую для добавления пункта меню. Вы можете установить, что я устанавливаю действие: (SEL) aSelector в функцию «openEchowavesURL».
Эта функция находится в том же файле класса контроллера, и я включил определение функции ниже.
Я просто вызываю неправильный синтаксис селектора или someting? Или что это за трюк, чтобы заставить элемент меню вызвать селектор при нажатии?
[statusMenu insertItemWithTitle:[NSString stringWithFormat:@"%d - %@", convo.newMessagesCount, convo.ewName] action:@selector(openEchowavesURL:) keyEquivalent:@"" atIndex:0];
- (void)openEchowavesURL:(id)sender {
// function details here
}
спасибо. Итак, если цепочка идет, то почему селектор не найден в моем классе контроллера? Почему в этом случае мне нужно вручную указать «я»? – cpjolicoeur
Вы должны отвечать определенным критериям, чтобы быть опрошенными во время поиска. Я предлагаю вам прочитать следующее руководство, чтобы понять, как: http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/EventOverview/index.html#//apple_ref/doc/uid/10000060i –
Ваш контроллер вероятно, не является частью цепи ответчиков. –