Dans Objective-C pour Cocoa Apps, il est possible d'utiliser une telle façon de garder la fenêtre toujours au top?
Comment réaliser la même chose avec Swift?
self.view.window?.level = NSFloatingWindowLevel
Provoque une erreur de génération Use of unresolved identifier 'NSFloatingWindowLevel'
Pour modifier le niveau de la fenêtre, vous ne pouvez pas le faire dans viewDidload car la propriété window de view y sera toujours nulle mais cela peut être fait en remplaçant la méthode viewDidAppear ou dans une méthode IBAction:
Swift 1
override func viewDidAppear() {
super.viewDidAppear()
view.window?.level = Int(CGWindowLevelForKey(kCGFloatingWindowLevelKey))
}
Swift 2
view.window?.level = Int(CGWindowLevelForKey(.FloatingWindowLevelKey))
Swift
view.window?.level = Int(CGWindowLevelForKey(.floatingWindow))
Swift 4
Enfin, ils ont corrigé la syntaxe étrange:
view.window?.level = .floating
Je préfère cette façon. Cela ignore toutes les autres applications actives et rend votre application immédiate.
override func viewWillAppear() {
NSApplication.sharedApplication().activateIgnoringOtherApps(true)
}