Xcode & Swift - fenêtre sans barre de titre mais avec les boutons fermer, minimiser et redimensionner
J'utilise actuellement Swift dans Xcode 6, bêta 5.
J'essaie de supprimer la barre de titre, ou toute différence visible entre la barre de titre et le contenu réel. Si j'active "Unified title and toolbar" dans L'Inspecteur des attributs sur une fenêtre, rien ne se produit visiblement. J'ai déjà laissé le titre.
Quand aucun titre n'est entré, la barre de titre sera encore distinguable en raison de la ligne de bordure et de la différence de fond avec le reste de la fenêtre, en le séparant de la contenu réel.
Un excellent exemple serait le Yosemite actuel, OS X 10.10, Notes app. Aucune barre de titre n'est visible ou distinguable, juste les boutons Fermer, minimiser et redimensionner comme ici.
j'ai cherché et visité d'autres postes, mais sans grand effet.
Ceux qui ont mentionné cacher la barre de titre tout à fait, mais je ne saurais pas comment ré-ajouter manuellement les boutons Fermer, minimiser et redimensionner correctement, ce qui signifie qu'ils seraient corrects, aucun remplacement d'image réel et sournois et les connexions avec la barre de menu Fermer, minimiser et redimensionner les fonctions.
6 réponses
le nouveau masque de style de fenêtre NSFullSizeContentViewWindowMask
ajouté dans OS X 10.10 fera l'affaire.
self.window.titleVisibility = NSWindowTitleVisibility.Hidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;
Pour de 10,10+, vous pouvez utiliser ces:
window.titlebarAppearsTransparent = true
window.movableByWindowBackground = true
Il y avait un projet d'échantillon officiel pour l'apparition de fenêtres à Yosemite. Vous pourriez envie de le vérifier.
Pour Swift 3: -
self.window.titleVisibility = .hidden
self.window.titlebarAppearsTransparent = true
self.window.styleMask.insert(.fullSizeContentView)
Vous pouvez utiliser ces:
override func viewDidAppear() {
super.viewDidAppear()
self.view.window?.titlebarAppearsTransparent = true
self.view.window?.movableByWindowBackground = true
}
Mise À Jour Sept. 2017, taget 10.11:
override func viewDidAppear() {
super.viewDidAppear()
self.view.window?.titleVisibility = .hidden
self.view.window?.titlebarAppearsTransparent = true
self.view.window?.styleMask.insert(.fullSizeContentView)
}
Je n'ai pas assez de réputation pour commenter la réponse des chansons de Ranfei, mais en tournant sur OSX 10.12 la syntaxe pour la visibilité des titres est légèrement différente, au lieu de ceci:
self.window.titleVisibility = NSWindowTitleVisibility.Hidden;
vous devrez utiliser NSWindowTitleHidden à la place, donc mettre à jour le code de Ranfei vous obligera à spécifier ceci comme ceci:
self.window.titleVisibility = NSWindowTitleHidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;