Я пытаюсь создать типичное простое меню macOS для моего остального чистого C-проекта, и это единственный код Objective-C, который у меня есть, я не создавал никаких классов или чего-либо еще:
#import <Cocoa/Cocoa.h>
- (void)method_new_file:(id)sender { new_flag = 1; }
void mac_menu_file_init()
{
NSMenu *currentMenu;
NSMenuItem *menuItem;
currentMenu = [[NSMenu alloc] initWithTitle:@"File"]; // set menu name
[currentMenu addItemWithTitle:@"New..." action:@selector(method_new_file:) keyEquivalent:@"n"];
// Put menu into the menubar and give up our references to the objects
menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
[menuItem setSubmenu:currentMenu];
[[NSApp mainMenu] insertItem:menuItem atIndex:1];
[currentMenu release];
[menuItem release];
}
Проблема очевидна, я "пропускаю контекст для объявления метода" для method_new_file
, но куда мне идти отсюда?Я просто хочу, чтобы этот метод вызывался всякий раз, когда я щелкаю по пункту меню, но для этого он должен быть частью чего-то, но что?Основываясь на коде и ответах, которые я видел, я попробовал следующее:
@interface My_Actions : NSApplication
@end
@implementation My_Actions
- (void)method_new_file:(id)sender { new_flag = 1; }
@end
и другие подобные вещи, но безрезультатно, пункт меню остается безнадежно серым, и я не знаю, что еще попробовать.