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];
                }
复制代码

 

posted @   Qingyun_Qearl  阅读(1161)  评论(0编辑  收藏  举报
编辑推荐:
· 自定义通信协议——实现零拷贝文件传输
· Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
阅读排行:
· DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)
· 自定义Ollama安装路径
· 本地部署DeepSeek
· 快速入门 DeepSeek-R1 大模型
· DeepSeekV3+Roo Code,智能编码好助手
点击右上角即可分享
微信分享提示