在可可中,当计算机具有多个屏幕时,如何确定哪个屏幕包含菜单栏?
这是我到目前为止的内容:
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]
,但这只是返回当前活动窗口所在的屏幕。如果我的应用程序中没有其他窗口打开,则仅返回具有菜单栏的屏幕。 最佳答案
从NSScreen文档中:
包含菜单栏的屏幕始终是screens方法返回的数组中的第一个对象(索引0)。
因此您的变量mainScreen已包含它。