How can I detemine which screen holds the menubar?

一世执手 提交于 2019-12-02 12:57:41

问题


In Cocoa, how can I determine which screen holds the menubar when the computer has multiple screens?

Here's what I have so far:

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);

Note: I tried using [NSScreen mainScreen], but that simply returns the screen on which the currently active window resides. It only returns the screen that has the menubar if there are no other windows open in my app.


回答1:


From the NSScreen documentation:

The screen containing the menu bar is always the first object (index 0) in the array returned by the screens method.

so your variable mainScreen already contains it.



来源:https://stackoverflow.com/questions/3163343/how-can-i-detemine-which-screen-holds-the-menubar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!