添加项目NSMenu与行动的预设选择
-
21-09-2019 - |
题
我是新来的Obj-C/可可编程,我有一个问题,试图以动态的菜单项添加一个NSMenu实例和有项目的行动,选择已经落后,插入。
我可以,加入动态的菜单项的现,但行动选择不会触发项目时,点击。
第一线的下线的代码,我在使用增加的单项目。你可以置我设置的行动:(SEL)aSelector的"openEchowavesURL"的功能。
这一功能是相同的控制器类文件,我已经包括的功能定义如下。
我只是打电话的错误选择的语法或通融一下?或是什么诀窍,以获得单项目来称呼一个选择当击?
[statusMenu insertItemWithTitle:[NSString stringWithFormat:@"%d - %@", convo.newMessagesCount, convo.ewName] action:@selector(openEchowavesURL:) keyEquivalent:@"" atIndex:0];
- (void)openEchowavesURL:(id)sender {
// function details here
}
解决方案
如果你想的行动将触发对你的对象,就必须指定一目标为新的 NSMenuItem:
NSMenuItem *item = [statusMenu insertItemWithTitle:[NSString stringWithFormat:@"%d - %@", convo.newMessagesCount, convo.ewName] action:@selector(openEchowavesURL:) keyEquivalent:@"" atIndex:0];
[item setTarget:self]; // or whatever target you want
如果你不做,那么 NSResponder 链将走到一个对象响应的选择。
其他提示
操作需要一个目标,否则他们会发送到零,然后新的规则。
不隶属于 StackOverflow