2012-02-19 220 views
2

無論在xcode中的分辨率變化,我如何獲得屏幕的當前大小,以便我可以根據分辨率調整我的NSRect大小以最大化或佔用屏幕?我需要添加什麼?這對NSWindow來說會是什麼嗎?NSRect大小填充屏幕

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

謝謝!

回答

1

您是否嘗試過使用[[NSScreen mainScreen] frame]?如果你想排除菜單欄,你可以從NSRect的高度減去菜單欄的高度。 (大約20個像素)

編輯:如果您希望從一開始就調整窗口大小,可以將上述方法放在控制器的awakeFromNib中並使用NSWindow的setFrame:display:來調整它的大小。

+0

我會在哪裏把這個放在我的代碼中去試試? – 2012-02-19 19:16:42

2

您可以使用CGDisplayBounds,它返回一個CGRect,其中包含全局座標中的屏幕邊界(原點和大小)。

您可以使用CGDisplayRegisterReconfigurationCallback在顯示配置更改時(包括更改其分辨率時)通知。

Quartz Display Services Reference