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
Objective c 当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后_Objective C_Macos_Cocoa_Osx Lion - Fatal编程技术网

Objective c 当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后

Objective c 当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后,objective-c,macos,cocoa,osx-lion,Objective C,Macos,Cocoa,Osx Lion,当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后 我怀疑这个问题与Lion中关于恢复主窗口最后配置的新功能有关。事实上,如果我从Library/Saved Application State文件夹中删除应用程序文件夹,然后再次运行我的应用程序,主窗口将显示在顶部 另外,如果我点击dock bar,应用程序会出现在前面,但不会出现在其他应用程序前面 我尝试过以下几种方法: 清除xib文件中的AutoSave字段 setLevel:NSNormalWindowLev

当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后

我怀疑这个问题与Lion中关于恢复主窗口最后配置的新功能有关。事实上,如果我从Library/Saved Application State文件夹中删除应用程序文件夹,然后再次运行我的应用程序,主窗口将显示在顶部

另外,如果我点击dock bar,应用程序会出现在前面,但不会出现在其他应用程序前面

我尝试过以下几种方法:

  • 清除xib文件中的AutoSave字段
  • setLevel:NSNormalWindowLevel(如果我使用NSSubmonuWindowLevel,即使它失去焦点,它也始终位于前面)
  • [车窗MakeKeyandDerfront:self]
但没有一个奏效

我不知道这是否重要,但我在应用程序首选项中的基本xib文件是“main menu.xib”,而不是“document.xib”。可能是主窗口被认为是主应用程序窗口,因此没有显示在顶部

在任何情况下,我认为代码中有错误,因为应用程序在默认情况下启动时应该显示在窗口顶部


谢谢

我也看到这种情况出于某种原因发生,尽管它似乎只在调试器下运行时发生


尝试在
applicationdFinishLaunching:

中调用
[NSApp activateIgnoringOtherApps:YES]
,我已通过使用禁用简历解决了此问题

//disable Lion resume
if([[NSUserDefaults standardUserDefaults] objectForKey: @"ApplePersistenceIgnoreState"] == nil)
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ApplePersistenceIgnoreState"];

在窗口的属性检查器中,尝试取消选中“可恢复”。对于编程解决方案,您可以尝试
–orderFrontDistribution
。我尝试过orderFrontDistribution,但它不起作用……如果用户在等待应用程序启动时正在执行其他操作,这将使应用程序抢占焦点。不要这样做,至少在发布版本中不要这样做。(即使您的应用程序通常很快,也可能会因为内存分页或从网络文件系统加载而变慢。)@Kevin Reid好的,我不会这么做,但如何解决?它总是出现在其他应用程序的背面。。。