gpt4 book ai didi

objective-c - 使用 Action 选择器预设将项目添加到 NSMenu

转载 作者:行者123 更新时间:2023-12-03 16:49:07 26 4
gpt4 key购买 nike

我是 Obj-C/Cocoa 编程新手,在尝试将菜单项动态添加到 NSMenu 实例并在插入时设置项目操作选择器时遇到问题。

我可以添加动态菜单项,但是当通过菜单单击该项目时,操作选择器不会触发。

下面的第一行是我用来添加菜单项的代码行。您可以将我正在设置的操作:(SEL)aSelector 设置为“openEchowavesURL”函数。

该函数位于同一个 Controller 类文件中,我已在下面包含了函数定义。

我只是调用了错误的选择器语法还是其他什么?或者让菜单项在单击时调用选择器的技巧是什么?

<小时/>
[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链将被遍历,直到对象响应选择器。

关于objective-c - 使用 Action 选择器预设将项目添加到 NSMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com