NSRect尺寸填充屏幕

时间:2012-02-19 06:57:19

标签: objective-c xcode nswindow

无论xcode中的分辨率如何变化,我如何获得屏幕的当前大小,以便我可以调整我的NSRect大小以使其最大化或根据分辨率占用屏幕?我需要添加什么?这会对NSWindow有所帮助吗?

 NSRect panelRect = [[self window] frame];
    panelRect.size.height = _HEIGHT;
    panelRect.size.width = _WIDTH;
    panelRect.origin.x = 0;
    panelRect.origin.y = 0;
    [[self window] setFrame:panelRect display:NO];

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用CGDisplayBounds,它会在全局坐标中返回包含屏幕边界(原点和大小)的CGRect

您可以使用CGDisplayRegisterReconfigurationCallback在显示配置更改时收到通知,其中包括更改其分辨率的时间。

Quartz Display Services Reference

答案 1 :(得分:1)

您是否尝试过使用[[NSScreen mainScreen] frame]?如果要排除菜单栏,可以从NSRect的高度中减去菜单栏高度。 (大约20像素)

编辑:如果您希望从一开始就调整窗口大小,可以将上面的方法放在控制器的awakeFromNib中,并使用NSWindow的setFrame:display:来调整它的大小。