Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 是否在关闭/隐藏窗口的情况下启用菜单项?OSX_Macos_Cocoa_Menubar - Fatal编程技术网

Macos 是否在关闭/隐藏窗口的情况下启用菜单项?OSX

Macos 是否在关闭/隐藏窗口的情况下启用菜单项?OSX,macos,cocoa,menubar,Macos,Cocoa,Menubar,我将尝试在应用程序窗口关闭或隐藏后,如何从应用程序中启用菜单栏。它是关闭还是隐藏对我来说并不重要,我对这两种方法都很满意 我发现: 并遵循如下指示: NSMenu *menu = [NSApplication sharedApplication].menu; [menu setAutoenablesItems:NO]; for(id obj in [menu itemArray]) { NSMenuItem *menuFile = (NS

我将尝试在应用程序窗口关闭或隐藏后,如何从应用程序中启用菜单栏。它是关闭还是隐藏对我来说并不重要,我对这两种方法都很满意

我发现:

并遵循如下指示:

NSMenu *menu = [NSApplication sharedApplication].menu;
        [menu setAutoenablesItems:NO];
        for(id obj in [menu itemArray]) {
            NSMenuItem *menuFile = (NSMenuItem*)obj;
            [menuFile setEnabled:YES];
        }
这段代码没有任何作用

为什么这个代码不起作用?在窗口关闭或隐藏后,如何启用菜单

我将非常感谢你的帮助


干杯

隐藏应用程序(及其窗口)或关闭最后一个窗口并将应用程序保持在前台是有区别的。确定您仍在以活动应用程序的形式运行该应用程序?我建议通过实现
validateNuitem
使用自动菜单启用。是的,我知道存在差异。但正如我上面所描述的,只要菜单还在运行,关闭或隐藏应用程序都无关紧要。不,我没有将应用程序作为活动应用程序运行。代理是活动的,因此我需要另一个应用程序的菜单,从一个菜单“控制”两个应用程序。我尝试使用ValidateNuItem函数如下:'-(BOOL)ValidateNuItem:(NSMenuItem*)menuItem{BOOL enable=YES;return enable;}'但似乎没有效果。还有其他建议吗@VadianValidateNuItem方法必须在响应程序链中的对象上实现。IIRC应用程序代理是最后的响应者(如果没有其他(如窗口或对话框)处于活动状态)。隐藏应用程序(及其窗口)或关闭最后一个窗口并将应用程序保持在前台是有区别的。确定您仍在以活动应用程序的形式运行该应用程序?我建议通过实现
validateNuitem
使用自动菜单启用。是的,我知道存在差异。但正如我上面所描述的,只要菜单还在运行,关闭或隐藏应用程序都无关紧要。不,我没有将应用程序作为活动应用程序运行。代理是活动的,因此我需要另一个应用程序的菜单,从一个菜单“控制”两个应用程序。我尝试使用ValidateNuItem函数如下:'-(BOOL)ValidateNuItem:(NSMenuItem*)menuItem{BOOL enable=YES;return enable;}'但似乎没有效果。还有其他建议吗@VadianValidateNuItem方法必须在响应程序链中的对象上实现。IIRC应用程序代理是最后的响应者(如果没有其他活动(如窗口或对话框)。