NSStatusWindowLevel отключен при представлении окна листа - PullRequest
0 голосов
/ 07 февраля 2012

Я использую NSWindow и устанавливаю для него уровень NSStatusWindowLevel:

[aWindow setLevel:NSStatusWindowLevel];

Теперь, когда я представляю лист (self - это окно моего листа)

modalAnswer = 0;
[NSApp beginSheet:self modalForWindow:aWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];
[self makeKeyAndOrderFront:nil];

тогда окно не отображается над док-станцией, оно скрывается под ним (это означает, что NSStatusWindowLevel больше не работает).Я попытался изменить уровень окна листа, но он не будет работать.

Что вызывает эту проблему?

1 Ответ

0 голосов
/ 15 февраля 2012

Я попросил техническую поддержку, и они обнаружили, что это глупая ошибка: листы обычно бывают модальными, но я тоже делал это модально.

Сочетание beginModalSessionForWindow и runModalSession является проблемой здесь. Похоже, что он обслуживает цикл выполнения по умолчанию, из-за которого строка меню и Dock появляются над вашим окном.

Я немного запутался, почему вы вызываете beginSheet: modalForWindow, а затем используете NSMpp beginModalSessionForWindow. Почему вы вручную добавляете модальный сеанс? Листы автоматически модальны к любому окну, к которому они прикреплены. Я привык видеть использование "beginModalSessionForWindow" без листов поверх них.

...