当我在OSX Lion中启动我的应用程序时,它总是运行在底层,而不是其他应用程序。
我怀疑这个问题与Lion中关于恢复主窗口最后配置的新功能有关。实际上,如果我从Library / Saved Application State文件夹中删除app文件夹,并且我再次运行我的应用程序,则主窗口将显示在顶部。
此外,如果我点击停靠栏,应用程序会出现在前面,但它永远不会在其他应用程序面前启动。
我尝试了几件事,例如:
- 清除xib文件中的AutoSave字段
- setLevel:NSNormalWindowLevel(如果我使用NSSubmenuWindowLevel,即使它失去焦点,它也始终保持在前面)
- [window makeKeyAndOrderFront:self]
但没有一个有效。
我不知道这是否重要,但我在应用首选项中的基本xib文件是“mainMenu.xib”而不是“document.xib”。因为mainWindow被认为是主要的应用程序窗口,因此没有显示在顶部?
在任何情况下,我认为代码中存在问题,因为默认情况下,应用程序应该在窗口顶部显示。
由于
答案 0 :(得分:1)
我也看到过这种情况也会发生,尽管在调试器下运行时似乎只会发生这种情况。
尝试在[NSApp activateIgnoringOtherApps:YES]
applicationDidFinishLaunching:
答案 1 :(得分:0)
我通过使用
禁用Resume来解决//disable Lion resume
if([[NSUserDefaults standardUserDefaults] objectForKey: @"ApplePersistenceIgnoreState"] == nil)
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ApplePersistenceIgnoreState"];