macOS NSMenu

2020-10-16  本文已影响0人  devileatapple

macOS相对于iOS来说,它的APP多了一个顶部的目录栏。这个目录栏的配置就有意思了。直接上代码

    /**

        NSMenu->单个NSMenuItem

        单个NSMenuItem先绑定对应的NSMenu对象(setSubmenu),在NSMenu对象中创建对应的子NSMenuItem(addItemWithTitle:/addItem:)

        显示的其实都是menuitem,其中有对应action或者有子menuitem的item才可以点击,否则就是置灰状态

     */

    NSMenu*mainMenu=[NSAppmain Menu];//获取默认的主目录

    ///添加一级menu keyEquivalent 快捷键win+字符串字符,如果有相同的字符,后续的快捷键会变成shift+win+字符

    NSMenuItem *userItem=[[NSMenuItem alloc]initWithTitle:@"一级目录" action:nil keyEquivalent:@"U"];

    [userItem setTitle:@"User"];

    [mainMenu insertItem:userItem atIndex:2];//插入item设定对应下标位置

    ///添加二级目录

    NSMenu *subMenu=[[NSMenu alloc]initWithTitle:@"User"];

    [userItem setSubmenu:subMenu];//设置子目录

    [subMenu addItemWithTitle:@"name" action:@selector(load1) keyEquivalent:@"N"];

    [subMenu addItemWithTitle:@"age" action:@selector(load2) keyEquivalent:@"A"];

    NSMenuItem *genderItem=[[NSMenuItem alloc]initWithTitle:@"Gender" action:nil keyEquivalent:@"G"];

    [subMenu addItem:genderItem];

    ///添加三级目录

    NSMenu *genderSubMenu=[[NSMenu alloc] initWithTitle:@"gender"];

    [genderItem setSubmenu:genderSubMenu];

    NSMenuItem *boyItem=[[NSMenuItem alloc]initWithTitle:@"boy" action:@selector(load1) keyEquivalent:@"B"];

    NSMenuItem *girlItem=[[NSMenuItem alloc]initWithTitle:@"girl" action:@selector(load2) keyEquivalent:@"G"];

    [genderSubMenu addItem:boyItem];

    [genderSubMenu addItem:girlItem ];

    //重置目录

    [NSApp setMainMenu:mainMenu];

上一篇下一篇

猜你喜欢

热点阅读