Objective c 应用程序主菜单未转发

Objective c 应用程序主菜单未转发,objective-c,cocoa,Objective C,Cocoa,我的cocoa应用程序有一个主窗口和主菜单。 当我双击finder启动我的应用程序时,应用程序的主窗口显示在前面,但此时主菜单不可见。要使其可见,我必须切换到其他应用程序,然后切换回我的应用程序 在info.plist中将LSUIElement设置为1 我正在使用以下代码将应用程序带到awakeFromNib的前端 if (noErr == GetCurrentProcess(&psn)) { SetFrontProcess(&psn); ProcessSerialNumber

我的cocoa应用程序有一个主窗口和主菜单。 当我双击finder启动我的应用程序时,应用程序的主窗口显示在前面,但此时主菜单不可见。要使其可见,我必须切换到其他应用程序,然后切换回我的应用程序

在info.plist中将LSUIElement设置为1

我正在使用以下代码将应用程序带到awakeFromNib的前端

if (noErr == GetCurrentProcess(&psn))
{
SetFrontProcess(&psn);
ProcessSerialNumber psn = {0, kCurrentProcess};
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
}
我使用NSTask启动了应用程序

当应用程序放在前面时,我如何使主菜单可见

谢谢,
Vaibhav.

如果启动时立即将其转换为前台,为什么要将其设置为后台(LSUIElement)?这样做的一个原因是,您可以让用户选择在后台或前台运行应用程序。您无法将正在运行的前台应用程序转换为后台应用程序,但您可以使用
TransformProcessType()
将其转换为后台应用程序,如OP所示。应用程序以静默或UI两种模式运行。当应用程序在UI模式下运行时,它将转换为前台应用程序。当应用程序在静默模式下运行时,不会创建UI&应用程序将继续作为后台应用运行。