2010-07-20 2 views
1

Ma fenêtre est structurée comme suit: NSWindow -> NSView -> NSTabView -> NSScrollView -> NSTextView. Si je change la taille de NSScrollView avec setFrameSize: les super vues/fenêtre ne sont pas redimensionnées pour accommoder mon NSScrollView plus grand ou plus petit. Est-il possible de redimensionner automatiquement Window, etc. lorsque je définis la taille d'une sous-vue ou dois-je calculer la taille de tous les composants de l'interface utilisateur et redimensionner la fenêtre elle-même? Merci d'avance pour toute aide ou direction.redimensionnement d'une sous-vue et ajout de vues/taille de fenêtre

Répondre

3

Il n'existe pas de méthode intégrée pour ce faire. Vous devrez calculer les tailles vous-même. En supposant que toutes les vues de votre hiérarchie sont configurées pour un redimensionnement automatique correct, vous pouvez simplement changer le cadre de la fenêtre et laisser le redimensionnement automatique faire son travail.

+1

Merci Joshua. Maintenant, au moins, je peux arrêter de chercher ces méthodes inexistantes. :) – stdout

0

Créer une catégorie sur UIView avec la méthode suivante:

- (void) resizeSuperviewsToContain { 
    UIView* view = self; 
    while(view.superview) { 
     CGFloat maxY = CGRectGetMaxY(view.frame); 
     CGRect superViewFrame = view.superview.frame; 
     if(superViewFrame.size.height < maxY) { 
      superViewFrame.size.height = maxY; 
      view.superview.frame = superViewFrame; 
     } 
     view = view.superview; 
    } 
} 
Questions connexes