objective-c – Cocoa – 如何使用NSMenuItem的动作传递参数?

objective-c – Cocoa – 如何使用NSMenuItem的动作传递参数?,第1张

概述我正在以编程方式创建菜单: + (void)refreshStatusMenu { for (NSDictionary *dict in kbMsgSet) { NSString *msj = [dict objectForKey:@"msj"]; NSString *mid = [dict objectForKey:@"mid"]; // <- this 我正在以编程方式创建菜单:

+ (voID)refreshStatusMenu {    for (NSDictionary *dict in kbMsgSet) {        Nsstring *msj = [dict objectForKey:@"msj"];        Nsstring *mID = [dict objectForKey:@"mID"]; // <- this would be http://www.blah.com         msg_item = [[NSMenuItem alloc] initWithTitle:[Nsstring stringWithFormat:@"%@",msj] action:@selector(goToURL:mID:) keyEquivalent:@""];        [msg_item setTarget:[self class]];        [sm insertItem:msg_item atIndex:(i_msg)];        i_msg++;        //...    }}

如何将参数传递给@selector(goToURL :),以便在项目单击时我可以调用:

+ (voID)goToURL:(ID)obj {    NSLog(@"Open url:...%@",obj);}

如果我尝试传递@selector(goToURL:var2 :),我会收到未捕获的异常错误.

解决方法 动作方法不能有2个参数.应该只有一个发件人,在这种情况下,它将是菜单项.有关将额外信息附加到菜单项并在 *** 作方法中检索它的方法,请参阅 this question的答案. 总结

以上是内存溢出为你收集整理的objective-c – Cocoa – 如何使用NSMenuItem的动作传递参数?全部内容,希望文章能够帮你解决objective-c – Cocoa – 如何使用NSMenuItem的动作传递参数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存