我在Mac OS 10.6.8上运行了一个cocoa应用程序 我在应用程序中添加了一个苹果菜单条目,用于退出我的应用程序。代码是这样的:
item = [menu addItemWithTitle: @"Quit Myapp" , NSLocalizedString(@"Quit", nil), applicationName] action:@selector(terminate:) keyEquivalent:@"q"];
[item setTarget:NSAPP];
现在,我的问题是,当使用runModal
的{{1}}打开模态对话框时,仍会启用此退出菜单项。其他菜单项照常被禁用。我无法理解为什么。
如果我更改上面的代码,使菜单项的目标不是NSApp,而是另一个cocoa对象,那么问题就会消失。
有人可以告诉我这是否是一个已知问题。将NSApp设置为菜单项的目标是错误的吗?
答案 0 :(得分:0)
为什么不使用Interface Builder中的应用程序菜单?
答案 1 :(得分:0)
我同意其他人这样做可能是一个坏主意。也就是说,将目标设置(或保留)为nil
以定位响应者链。这可能会在模型窗口启动时禁用它。
更新
嗯。检查新的MainMenu NIB,我看到Quit菜单项确实以应用程序对象为目标。所以,这可能不是问题。
顺便说一句,在上面的代码段中,您定位NSAPP
,无论是什么,而不是NSApp
。
此外,-addItemWithTitle:...
的参数列表全部搞砸了,没有任何意义。您应该清理您的问题以反映实际代码。