NSStatusWindowLevel отключен при представлении оконного листа

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

[aWindow setLevel:NSStatusWindowLevel];

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

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

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

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


person Fatso    schedule 07.02.2012    source источник


Ответы (1)


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

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

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

person Fatso    schedule 15.02.2012