Mac OS X/Cocoa: maak een "gekoppelde" zijbalk die het maximaal te vergroten gebied verkleint, zoals het Dock

Wanneer het OS X-dock wordt getoond, "reserveert het" een bepaald schermgebied en voorkomt het dat gemaximaliseerde vensters achter het dock gaan wanneer gemaximaliseerd. Hoe maak ik mijn eigen Cocoa-toepassing hetzelfde?

3

1 antwoord

Het "maximizable area" van een venster is gebaseerd op het visibleFrame van het scherm.

[[NSScreen mainScreen] visibleFrame]

De geretourneerde rechthoek is altijd gebaseerd op de huidige gebruikersinterface-instellingen en omvat niet het gebied dat momenteel door het dock en de menubalk wordt gebruikt.

     

Omdat deze is gebaseerd op de huidige interface-instellingen, kan de geretourneerde rechthoek tussen oproepen wisselen en mag deze niet in de cache worden geplaatst.   De rechthoek die het gedeelte van het scherm definieert waarin het momenteel veilig is om de inhoud van uw toepassing te tekenen.

Er is geen melding gemaakt van het kunnen aanpassen van deze visibleFrame rechthoek, dus ik denk niet dat je enig succes zult hebben dat de "globale" zoomgrootte beïnvloedt.

Als u echter alleen de ingezoomde grootte van het venster van van uw app wilt aanpassen, retourneert u een kleinere rechthoek in het NSWindowDelegate methode vensterWillUseStandardFrame: defaultFrame: .

Het standaardkader voor een venster moet het formaat en de locatie leveren die "het beste" zijn voor het type informatie dat in het venster wordt weergegeven, rekening houdend met het beschikbare display of de beschikbare weergaven. De beste breedte voor een venster dat een tekstverwerkingsdocument weergeeft, is bijvoorbeeld de breedte van een pagina of de breedte van het scherm, afhankelijk van welke kleiner is. De beste hoogte kan op dezelfde manier worden bepaald. Bij terugkomst van deze methode past de zoom: methode het geretourneerde standaardframe aan, indien nodig, om op het huidige scherm te passen.

Hiermee kunt u rekening houden met een "gekoppelde zijbalk" bij het inzoomen op de vensters van uw app . Andere apps worden van grootte veranderd bovenop de gekoppelde zijbalk.

0
toegevoegd