Objective c 当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后
当我在OSX Lion中启动我的应用程序时,它总是在底层运行,在其他应用程序之后 我怀疑这个问题与Lion中关于恢复主窗口最后配置的新功能有关。事实上,如果我从Library/Saved Application State文件夹中删除应用程序文件夹,然后再次运行我的应用程序,主窗口将显示在顶部 另外,如果我点击dock bar,应用程序会出现在前面,但不会出现在其他应用程序前面 我尝试过以下几种方法: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
- 清除xib文件中的AutoSave字段
- setLevel:NSNormalWindowLevel(如果我使用NSSubmonuWindowLevel,即使它失去焦点,它也始终位于前面)
- [车窗MakeKeyandDerfront:self]
谢谢我也看到这种情况出于某种原因发生,尽管它似乎只在调试器下运行时发生
尝试在
applicationdFinishLaunching:
中调用[NSApp activateIgnoringOtherApps:YES]
,我已通过使用禁用简历解决了此问题
//disable Lion resume
if([[NSUserDefaults standardUserDefaults] objectForKey: @"ApplePersistenceIgnoreState"] == nil)
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ApplePersistenceIgnoreState"];
在窗口的属性检查器中,尝试取消选中“可恢复”。对于编程解决方案,您可以尝试
–orderFrontDistribution
。我尝试过orderFrontDistribution,但它不起作用……如果用户在等待应用程序启动时正在执行其他操作,这将使应用程序抢占焦点。不要这样做,至少在发布版本中不要这样做。(即使您的应用程序通常很快,也可能会因为内存分页或从网络文件系统加载而变慢。)@Kevin Reid好的,我不会这么做,但如何解决?它总是出现在其他应用程序的背面。。。