无论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];
谢谢!
答案 0 :(得分:2)
您可以使用CGDisplayBounds
,它会在全局坐标中返回包含屏幕边界(原点和大小)的CGRect
。
您可以使用CGDisplayRegisterReconfigurationCallback
在显示配置更改时收到通知,其中包括更改其分辨率的时间。
答案 1 :(得分:1)
您是否尝试过使用[[NSScreen mainScreen] frame]
?如果要排除菜单栏,可以从NSRect的高度中减去菜单栏高度。 (大约20像素)
编辑:如果您希望从一开始就调整窗口大小,可以将上面的方法放在控制器的awakeFromNib中,并使用NSWindow的setFrame:display:
来调整它的大小。