Fenêtre qui occupe tout l'écran verticalement

colas_colas_ Membre
avril 2013 modifié dans API AppKit #1

[Xcode 4.6,


deployment SDK 10.7,


development SDK 10.8]


 


Bonjour,


est-ce possible de faire en sorte, simplement, qu'une fenêtre occupe tout l'espace verticalement (moins la barre de menu, évidemment) ? Avec IB ?


 


J'ai l'impression qu'en settant une height élevée (plus élevée que la hauteur de l'écran), ça marche.


 


Merci !


Réponses

  • C'est pas vraiment les guidelines OS X ça, normalement une fenêtre ne doit prendre que l'espace dont elle a besoin. Tu as d'ailleurs une méthode sur le délégué de NSWindow (si j'ai bonne mémoire) qui permet d'indiquer la taille souhaité lors de l'appuis sur le bouton vert.


  • colas_colas_ Membre
    avril 2013 modifié #3

    Oui mais par exemple, Word (si mes souvenirs sont bons) occupe tout l'espace.


    Je trouve cela joli. On a l'impression de vraiment être dans cette application.


     


    Mais c'est vrai que les écrans sont de plus en plus grands !


  • Les applis MS en terme de respect des guidelines et de bonne ergonomie ne sont pas vraiment une référence... (Et firefox non plus)


     


    Personnellement je n'utilise pas Word, ce logiciel est trop mauvais, Pages en tout cas ne prends pas tout l'espace (et heureusement car il n'en a pas besoin).


     


    Le seul moyen propre pour occuper tout l'espace c'est un calcul au démarrage. Mais avant ça demande toi si c'est vraiment nécessaire. Quelle est ton application ici ?


  • Ce n'est pas à  toi de décider ce que préfère l'utilisateur.


     


    La seule chose que tu peux faire :


    - Implémenter le bouton vert pour s'adapter au contenu, comme te l'explique Yoann


    - Implémenter le mode FullScreen (les deux flèches en haut a droite sur Lion et plus) pour avoir une fenêtre qui prend VRAIMENT tout l'écran, sans dock et sans menubar.


     


    En implémentant ces deux solutions, l'utilisateur pourra avoir le fonctionnement qu'il préfère.


  • Je veux créer une appui pour entrer remplir une base de données.


     


    Je veux que l'utilisateur soit à  l'aise et "se sente dans l'appli" et donc que la fenêtre soit grande, voir qu'elle occupe tout l'écran verticalement.


    Bon, je bosse sur un macbook pro 15", donc c'est sûr que je ne vois pas le choses comme si je bossais sur un 24". Je pense que c'est ça qui crée cette envie d'avoir l'appui qui d'emblée est "grande".


     


    Je vais suivre vos indications.


    Peut-être qu'il faudrait que je prévois le cas où l'utilisateur a un écran 13"...


    A-t-on moyen d'émuler des écrans plus petits ? La solution : changer la résolution de mon écran ?


     


    Merci !


  • HerveHerve Membre

    Dans Interface Builder, n'oublie pas de demander à  tes sous-fenêtres de s'adapter à  la taille de l'écran aussi. Il ne faut ni qu'elles soient cachées, ni qu'elles restent dans un coin sans bouger.


     


    La taille de la fenêtre pour un petit MacBook est de 1200 par 690 pixels environ. Je le sais parce que le MacAppleStore oblige à  ce que ton soft puisse s'ouvrir partout, ce qui ne manque pas de poser de problème lorsqu'on multiplie les contrôles. Sur les derniers iMac, tu mets 5 ou 6 fois ça au moins... (ton appli apparaà®t dans un coin de l'énorme écran...) Mon "TechnoDrive" occupe tout l'écran du Mac Book, et un petit coin des derniers iMac par exemple. (je suis allé testé cela dans le Apple Store Opéra)


     


    Peut-être te faut-il réfléchir à  cela aussi? 


  • colas_colas_ Membre

    J'avais cru voir que la taille du dernier MacBook 13" était de 1280 by 800 (cf. http://www.apple.com/macbook-pro/specs/)


     


    Mon appli ne sera pas pour le store. C'est pour un usage perso, (éventuellement partagé avec des amis).

  • HerveHerve Membre

    Oui, mais il y a le Dock en bas de l'écran qui fait qu'une partie de ton appli est masquée en bas (à  moins de le mettre sur le côté ou de le masquer, mais bon, c'est "pas cool")


  • mpergandmpergand Membre
    mai 2013 modifié #10

    La méthode visibleFrame de NSScreen tient compte du dock:


     


    - (NSRect)visibleFrame

    Return Value

    The rectangle defining the portion of the screen in which it is currently safe to draw your application content.



    Discussion

    The returned rectangle is always based on the current user-interface settings and does not include the area currently occupied by the dock and menu bar. Because it is based on the current user -interface settings, the returned rectangle can change between calls and should not be cached.


     


     




    NSScreen* screen=[window screen];
    NSRect maxFrame=[screen visibleFrame];

Connectez-vous ou Inscrivez-vous pour répondre.