Mac开发 - 使用CCMenu和CCMenuItem添加菜单、右击菜单、Dock菜单
Mac开发 - 使用CCMenu和CCMenuItem添加菜单、右击菜单、Dock菜单 1、添加一个Dock右击菜单 NSMenu *appDockMenu = [[NSMenu alloc] initWithTitle:@"DockMenu"]; [appDockMenu setAutoenablesItems:NO]; NSMenuItem* newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:@"About" action:@selector(aboutDockAction:) keyEquivalent:@""]; [newItem setTarget: self]; [appDockMenu addItem:newItem]; [newItem release]; - (NSMenu *)applicationDockMenu:(NSApplication *)sender { return appDockMenu; } 2、给一个NSView添加右击菜单 NSMenu* newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] initWithTitle:@"Copy"]; NSMenuItem* newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:@"Copy" action:@selector(copyAction:) keyEquivalent:@""]; [newItem setEnabled:YES]; [newItem setTarget:self]; [newMenu addItem:newItem]; [newItem release]; [myview setMenu:newMenu]; [newMenu release]; 3、给顶部菜单栏,添加菜单 NSMenu* newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] initWithTitle:@"About"]; NSMenuItem* newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:@"About"action:@selector(copyAction:) keyEquivalent:@""]; [newItem setEnabled:YES]; [newItem setTarget:self]; [newMenu addItem:newItem]; [newItem release]; [[NSApp mainMenu] insertItem:newItem atIndex:3]; [newMenu release];
NSMenu *subMenu = [[NSMenu alloc]init]; for (NSDictionary *dic in folderArray) { for (NSString *folderKey in [dic allKeys]) { NSDictionary *folderInfo = [dic objectForKey:folderKey]; NSString *appName = [folderInfo objectForKey:@"APP_NAME"]; IBDMenuItem* newItem = [[IBDMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle: appName action:@selector(moveToAction:) keyEquivalent:@""]; //绑定选择移动到item newItem.tag = folderKey.intValue; //绑定要移动的Item 考虑传值问题 newItem.selfIndex = index.integerValue; [newItem setTarget: self]; [subMenu insertItem:newItem atIndex:0]; }
如果错过了一天,那么真的就错过一天。不抛弃,不放弃。点一盏心灯给自己。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 自定义通信协议——实现零拷贝文件传输
· Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)
· 自定义Ollama安装路径
· 本地部署DeepSeek
· 快速入门 DeepSeek-R1 大模型
· DeepSeekV3+Roo Code,智能编码好助手