Ich muss ein "Vollbild-Overlay-Fenster" in einem Programm für OS X erstellen. Genauer gesagt muss das Fenster immer über allen anderen Fenstern stehen, einschließlich über der Menüleiste im nicht-maximierten Fenster Räume, und oben auf maximierte Fenster in ihren eigenen Räumen und oben während Exposé. Es darf nicht an "change space" -Animationen teilnehmen; h. seine Position muss immer relativ zum physischen Bildschirm festgelegt sein. (Das Fenster ist halbtransparent und ignoriert Mausereignisse, aber ich weiß bereits, wie das geht.)
Wie erreiche ich dieses "Overlay-Fenster" -Verhalten? Ich bin so weit gekommen:
window.level
auf CGWindowLevelKey(kCGMaximumWindowLevelKey)
setzen, damit es immer über anderen Fenstern im selben Raum steht. NSWindowCollectionBehaviorStationary
so einstellen, dass das Fenster während des Exposés an Ort und Stelle bleibt. Was ich nicht weiß, ist, wie ich dieses Verhalten beim Platzwechsel beibehalten soll. Ich dachte, ich sollte NSWindowCollectionBehaviorCanJoinAllSpaces
setzen, aber sein Verhalten hat zwei Probleme:
Ich habe gehört, dass ein NSPanel
mir helfen würde , aber ich habe es getan nicht in der Lage, dies auch zu tun.
Kurz gesagt, Kann in OS X ein Fenster über einem Vollbildfenster angezeigt werden? Können Sie ein kurzes, vollständiges Beispiel geben?
Sie sollten window.level = CGWindowLevelForKey(.MaximumWindowLevelKey)
verwenden.
Ich kann dir mit dem Leerzeichen-Teil nicht helfen.
Tags und Links objective-c macos cocoa