2017-09-29 1 views
0

J'ai une fenêtre de préférences avec un NSTabViewController connecté à la barre d'outils pour sélectionner les onglets. Je souhaite que la fenêtre soit redimensionnable et redimensionnée si nécessaire lors du changement d'onglet pour l'adapter à la taille du nouvel onglet.La fenêtre anime la largeur mais pas la hauteur

Je NSTabViewController avec le sous-classement de la surcharge suivante:

override var selectedTabViewItemIndex: Int 
{ 
    didSet 
    { 
    guard let view = tabViewItems[selectedTabViewItemIndex].view, 
      let window = view.window 
    else { return } 

    let minSize = view.fittingSize 
    let contentRect = NSWindow.contentRect(forFrameRect: window.frame, 
              styleMask: window.styleMask) 
    let minRect = NSRect(origin: contentRect.origin, size: minSize) 
    let newRect = minRect.union(contentRect) 
    let newFrame = NSWindow.frameRect(forContentRect: newRect, 
             styleMask: window.styleMask) 

    window.animator().setFrame(newFrame, display: true, animate: true) 
    } 
} 

Le résultat est que le redimensionnement Animez horizontalement, et à la fin, il redimensionne tout à coup aussi bien verticalement. Comment puis-je l'obtenir pour animer les deux directions à la fois?

Répondre

0

Avez-vous des contraintes de hauteur sur l'un des onglets? Ceux-ci pourraient empêcher la fenêtre de devenir plus grande (même en dehors de l'écran).

+0

Aucune contrainte de hauteur explicite sur les onglets, juste sur les sous-vues et leur espace haut/bas pour la vue d'ensemble. Idem pour la largeur. – Uncommon