Когда я запускаю свое приложение в OSX Lion, оно всегда работает на нижнем уровне, позади других приложений - PullRequest
0 голосов
/ 30 декабря 2011

Когда я запускаю свое приложение в OSX Lion, оно всегда запускается на нижнем уровне, позади других приложений.

Я подозреваю, что проблема связана с новой функцией в Lion о восстановлении последней конфигурации главного окна. Действительно, если я удаляю папку приложения из папки Library / Saved Application State и снова запускаю свое приложение, главное окно отображается сверху.

Кроме того, если я нажимаю на панель док-станции, приложения появляются впереди, но никогда не запускаются перед другими приложениями.

Я пробовал несколько вещей, таких как:

  • очистить поле автосохранения в xib-файле
  • setLevel: NSNormalWindowLevel (если я использую NSSubmenuWindowLevel, он всегда остается впереди, даже когда теряет фокус)
  • [window makeKeyAndOrderFront: self]

но никто не работал.

Я не знаю, имеет ли это значение, но мой базовый xib-файл в настройках приложения - "mainMenu.xib", а не "document.xib". МОЖЕТ БЫТЬ, чтобы mainWindow считалось главным окном приложения и поэтому не показывалось сверху?

В любом случае я думаю, что в коде что-то не так, потому что приложение должно отображаться в верхней части окна при запуске по умолчанию.

Спасибо

Ответы [ 2 ]

1 голос
/ 31 декабря 2011

Я видел, что это также происходит по какой-то причине, хотя, похоже, это происходит только при работе под отладчиком.

Попробуйте вызвать [NSApp activateIgnoringOtherApps:YES] в applicationDidFinishLaunching:

0 голосов
/ 11 января 2012

Я решил, отключив Resume с помощью

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