0

我有一个在 Mac OS 10.6.8 上运行的可可应用程序我在应用程序的苹果菜单中添加一个条目,用于退出我的应用程序。代码是这样的:

item = [menu addItemWithTitle: @"Quit Myapp" , NSLocalizedString(@"Quit", nil), applicationName] action:@selector(terminate:) keyEquivalent:@"q"];

[item setTarget:NSAPP];

现在,我的问题是,当使用runModalof打开模式对话框时NSOpenPanel,此退出菜单项仍处于启用状态。其余菜单项照常禁用。我无法理解为什么。

如果我更改上面的代码,使菜单项的目标不是 NSApp,而是另一个可可对象,那么问题就消失了。

有人可以让我知道这是否是一个已知问题。将 NSApp 设置为菜单项的目标是否错误?

4

2 回答 2

0

我同意其他人的观点,即这样做可能是个坏主意。也就是说,将目标设置(或离开)nil以响应者链为目标。当模型窗口启动时,这可能会使其禁用。

更新:

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

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

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

于 2012-04-22T21:48:07.610 回答
0

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

于 2012-04-19T14:39:28.710 回答