2010-12-03 27 views
3

Comment pouvons-nous fixer la taille de NSWindow afin que l'utilisateur ne puisse pas le redimensionner en le faisant glisser avec la souris ou y at-il un moyen de redimensionner la fenêtre des sous-vues lorsque les utilisateurs modifient la taille de la fenêtre que lorsque l'utilisateur change la taille de la fenêtre, les sous-vues ne resizse pas ce que je voulais verrouiller le redimensionnement de la fenêtre?Fixation de la taille de NSWindow?

Répondre

0

Peut-être pas la réponse que vous êtes après, mais vous pouvez empêcher le redimensionnement en désactivant l'indicateur de modification de taille (via setShowsResizeIndicator), puis la mise en œuvre ...

- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize 

... NSWindowDelegate méthode déléguée de sorte qu'il renvoie simplement la taille de la fenêtre existante.

Bizarre qu'il n'y ait pas de méthode "setCanResize:", mais voilà.

1

Ce qui suit suppose que vous utilisez Interface Builder pour votre mise en page de la fenêtre:

Pour obtenir les sous-vues pour redimensionner, allez à l'inspecteur de taille (commande 3) et, pour chaque sous-vue, mettre ses jambes de force Autoresizing et stretchies (cliquez sur les lignes rouges dans le rectangle) jusqu'à ce que l'animateur de prévisualisation fasse ce que vous voulez. Souvenez-vous: (1) Si une vue parente n'a pas d'étirement, ses enfants ne le seront pas non plus; (2) Si vous utilisez des barres de défilement, elles n'apparaîtront jamais si le contenu est extensible dans la même direction que la barre de défilement.

Si vous avez vraiment besoin d'une fenêtre verrouillée, sans contrôle pour le redimensionnement, vous pouvez décocher ces options dans l'inspecteur d'attributs (command-1). Ou, plus simplement, faire une IBOutlet pour la fenêtre et de mettre dans votre code:

[self.theWindow setStyleMask:NSBorderlessWindowMask]; 
5

je manquerai point ici (et un peu en retard), mais pouvez-vous pas encore défini les options les «contraintes sur la fenêtre elle-même?

Si les tailles min et max sont les mêmes, cela évite le redimensionnement.

enter image description here