如何确定哪个屏幕保存菜单栏?

时间:2010-07-02 05:09:25

标签: objective-c cocoa screen menubar

在Cocoa中,当计算机有多个屏幕时,如何确定哪个屏幕保持菜单栏?

这是我到目前为止所拥有的:

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 个答案:

答案 0 :(得分:6)

来自NSScreen文档:

  

包含菜单栏的屏幕始终是屏幕方法返回的数组中的第一个对象(索引0)。

因此您的变量mainScreen已包含它。