在cocoa应用程序中退出应用程序菜单的问题

时间:2012-04-19 14:31:15

标签: macos cocoa

我在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设置为菜单项的目标是错误的吗?

2 个答案:

答案 0 :(得分:0)

为什么不使用Interface Builder中的应用程序菜单?

答案 1 :(得分:0)

我同意其他人这样做可能是一个坏主意。也就是说,将目标设置(或保留)为nil以定位响应者链。这可能会在模型窗口启动时禁用它。

更新

嗯。检查新的MainMenu NIB,我看到Quit菜单项确实以应用程序对象为目标。所以,这可能不是问题。

顺便说一句,在上面的代码段中,您定位NSAPP,无论是什么,而不是NSApp

此外,-addItemWithTitle:...的参数列表全部搞砸了,没有任何意义。您应该清理您的问题以反映实际代码。