Mac OS X / Cocoa: создайте «пристыкованную» боковую панель, которая сокращает максимально возможную площадь, например Dock - PullRequest
3 голосов
/ 07 декабря 2011

Когда отображается док-станция OS X, она «резервирует» некоторую область экрана и не позволяет развернутым окнам идти за док-станцией при максимизации. Как мне сделать, чтобы мое собственное приложение Какао делало то же самое?

1 Ответ

1 голос
/ 17 февраля 2015

«Максимальная область окна» основана на значениях visibleFrame.

[[NSScreen mainScreen] visibleFrame]

Возвращаемый прямоугольник всегда основан на текущих настройках интерфейса пользователя ине включает область, занимаемую в данный момент доком и строкой меню.

Поскольку он основан на текущих настройках пользовательского интерфейса, возвращаемый прямоугольник может меняться между вызовами и не должен кэшироваться.Прямоугольник, определяющий часть экрана, на которой в настоящее время безопасно рисовать содержимое вашего приложения.

Нет упоминания о возможности настройки этого visibleFrame прямоугольника, поэтому я не думаю, что выбудет иметь любой успех, влияющий на «глобальный» размер Zoom.

Однако, если вы хотите настроить только размер Zoomed окна вашего приложения, верните меньший прямоугольник в методе NSWindowDelegatewindowWillUseStandardFrame:defaultFrame:.

Стандартная рамка для окна должна указывать размер и расположение, которые являются «лучшими» для типа информации, отображаемой в окне, с учетом доступного дисплея или дисплеев.Например, лучшая ширина окна, в котором отображается текстовый документ, - это ширина страницы или ширина экрана, в зависимости от того, что меньше.Лучшая высота может быть определена аналогично.По возвращении из этого метода метод zoom: при необходимости изменяет возвращаемый стандартный кадр, чтобы он уместился на текущем экране.

Это позволит вам учитывать «пристыкованную боковую панель» при масштабировании. окна вашего приложения .Размер других приложений будет изменен в верхней части закрепленной боковой панели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...