У меня есть графическое приложение, которое должно проверить разрешение экрана, которое он запускает в Mac OS X, чтобы убедиться, что оно не превышает разрешение. Это делается до инициализации самого окна.
Если имеется более одного дисплея, он должен быть основным. Это дисплей, на котором приложения с аппаратным ускорением (OpenGL) будут запускаться в полноэкранном режиме, и обычно это дисплей с полосой меню вверху.
В Windows я могу успешно использовать GetSystemMetrics (). Как я могу это сделать в OS X?





Использование CoreGraphics:
CGRect mainMonitor = CGDisplayBounds(CGMainDisplayID());
CGFloat monitorHeight = CGRectGetHeight(mainMonitor);
CGFloat monitorWidth = CGRectGetWidth(mainMonitor);
Больше информации на Apple Справочник по услугам кварцевых дисплеев.
Тогда что делать с 64-битным приложением
Что-то вроде: NSRect screenRect = [[NSScreen mainScreen] frame];
Примечание для будущих поколений: этот код использует Carbon, поэтому он не будет работать в 64-битных приложениях на Leopard или Snow Leopard.