Как я могу определить, какой экран содержит строку меню? - PullRequest
1 голос
/ 02 июля 2010

В Какао, как я могу определить, какой экран содержит строку меню, когда компьютер имеет несколько экранов?

Вот что у меня есть:

NSArray * screens = [NSScreen screens];
NSScreen * mainScreen = [screens objectAtIndex:0];
if ([screens count] > 1)
{
    for (NSScreen * screen in screens)
    {
        if (/* screen == the screen that holds the menubar */)
        { mainScreen = screen; break; }
    }
}

NSLog(@"the main screen is: %@", mainScreen);

Примечание: я пытался использовать [NSScreen mainScreen], но это просто возвращает экран, на котором находится текущее активное окно.Экран с меню отображается только в том случае, если в моем приложении не открыты другие окна.

1 Ответ

6 голосов
/ 02 июля 2010

Из документации NSScreen :

Экран, содержащий строку меню, всегда является первым объектом (индекс 0) в массиве, возвращаемом методом экранов.

поэтому ваша переменная mainScreen уже содержит ее.

...