Размер NSRect для заполнения экрана - PullRequest
2 голосов
/ 19 февраля 2012

Как я могу получить текущий размер экрана независимо от изменения разрешения в xcode, чтобы я мог настроить свой размер NSRect на максимальное или взять экран в соответствии с разрешением? Что мне нужно добавить? Будет ли это что-то для 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];

Спасибо! * * 1004

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

Вы можете использовать CGDisplayBounds, который возвращает CGRect, содержащий границы экрана (начало координат и размер) в глобальных координатах.

Вы можете использовать CGDisplayRegisterReconfigurationCallback, чтобы получать уведомления при изменении конфигурации дисплея, в том числе при изменении его разрешения.

Справочник услуг по кварцевым дисплеям

1 голос
/ 19 февраля 2012

Вы пробовали использовать [[NSScreen mainScreen] frame]?Если вы хотите исключить строку меню, вы можете вычесть высоту меню из высоты NSRect.(Это около 20 пикселей)

Редактировать: Если вы хотите, чтобы размер вашего окна был изменен с самого начала, вы можете поместить метод выше в awakeFromNib вашего контроллера и использовать NSWindow setFrame:display:, чтобы изменить его размер.

...