У меня проблема с тем, что селекторы не выполняются для пользовательских представлений внутри NSMenuItem, когда они отображаются с помощью кнопки в модальном окне NSWindow.
Это кажется воспроизводимой проблемой, и я упростил еестолько, сколько я могу.
Модальное окно отображается через.
[NSApp runModalForWindow:_modalWindow];
В модальном окне есть только кнопка, и кнопка прикреплена к следующему селектору.
- (IBAction)modalButtonClicked:(id)sender
{
NSMenu* aMenu = [[NSMenu alloc] initWithTitle:@"Menu"];
NSMenuItem* aItemA = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
NSMenuItem* aItemB = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
NSMenuItem* aItemC = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
[aItemA setView:[NSButton buttonWithTitle:@"Item A" target:self action:@selector(menuButtonClicked:)]];
[aItemB setView:[NSButton buttonWithTitle:@"Item B" target:self action:@selector(menuButtonClicked:)]];
[aItemC setView:[NSButton buttonWithTitle:@"Item C" target:self action:@selector(menuButtonClicked:)]];
[aMenu addItem:aItemA];
[aMenu addItem:aItemB];
[aMenu addItem:aItemC];
[NSMenu popUpContextMenu:aMenu withEvent:[NSApp currentEvent] forView:sender];
}
и событие щелчка по меню с точкой останова:
- (void)menuButtonClicked:(id)sender
{
NSLog(@"%@", sender);
}
При нажатии на кнопку отобразится меню с 3 кнопками, однако при нажатии любой из этих кнопок ничего не происходит.@ (menuButtonClicked :) никогда не вызывается.Это проблема только модальных окон, но нет очевидной причины.