+ (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的动作传递参数?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)