macOS开发NSMenu NSMenuItem的简单是使用-鼠标右键菜单栏

鸣谢:

先睹为快

复制代码
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

}

#pragma mark 获取鼠标右键事件
-(void)rightMouseDown:(NSEvent *)event{

    //创建Menu
    NSMenu *theMenu = [[NSMenu alloc] initWithTitle:@"Contextual Menu"];
    //NSMenu *theMenu = [[NSMenu alloc] init];
    
    //常规添加菜单
    [theMenu insertItemWithTitle:@"Item 1"action:@selector(beep:)keyEquivalent:@""atIndex:0];

    [theMenu insertItemWithTitle:@"Item 2"action:@selector(beep:)keyEquivalent:@""atIndex:1];
    
    //自定义的NSMenuItem
    NSMenuItem *item3 = [[NSMenuItem alloc]init];

    item3.title = @"Item 38";

    item3.target = self;

    item3.action = @selector(beep:);

    [theMenu insertItem:item3 atIndex:2];

    [NSMenu popUpContextMenu:theMenu withEvent:event forView:self.view];

}

#pragma mark 统一使用响应方法,不然不使用该方法的菜单栏将不能点击
-(void)beep:(NSMenuItem *)menuItem{

    NSLog(@"_____%@", menuItem);

}


#pragma mark 暂时不清楚这是干什么的
- (void)setRepresentedObject:(id)representedObject {

    [super setRepresentedObject:representedObject];

    // Update the view, if already loaded.

}

@end
复制代码

 

posted on   高彰  阅读(537)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示