2 votes

Taille du NSRect pour remplir l'écran

Comment puis-je obtenir la taille actuelle de l'écran sans tenir compte du changement de résolution dans xcode afin que je puisse ajuster la taille de mon NSRect pour qu'il soit maximisé ou occupe l'écran en fonction de la résolution ? Que dois-je ajouter ? Serait-ce quelque chose à la NSWindow ?

 NSRect panelRect = [[self window] frame];
    panelRect.size.height = _HEIGHT;
    panelRect.size.width = _WIDTH;
    panelRect.origin.x = 0;
    panelRect.origin.y = 0;
    [[self window] setFrame:panelRect display:NO];

Gracias.

2voto

rob mayoff Points 124153

Vous pouvez utiliser CGDisplayBounds qui renvoie un CGRect contenant les limites de l'écran (origine et taille) en coordonnées globales.

Vous pouvez utiliser CGDisplayRegisterReconfigurationCallback pour être notifié lorsqu'une configuration d'affichage change, y compris lorsque sa résolution est modifiée.

Référence des services d'affichage à quartz

1voto

TheAmateurProgrammer Points 4202

Avez-vous essayé d'utiliser [[NSScreen mainScreen] frame] ? Si vous voulez exclure la menubar, vous pouvez soustraire la hauteur de la menubar de la hauteur du NSRect. (C'est environ 20 pixels)

Edit : Si vous voulez que votre fenêtre soit redimensionnée dès le début, vous pouvez mettre la méthode ci-dessus dans le awakeFromNib de votre contrôleur et utiliser la méthode de NSWindow. setFrame:display: pour le redimensionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X