NSScreenクラス
スクリーンサイズを取得するにはNSScreenクラスを使用する。
NSRect rect1 = [[NSScreen mainScreen]frame] ; NSLog(@"rect1 : %@",NSStringFromRect(rect1)) ; NSRect rect2 = [[NSScreen mainScreen]visibleFrame] ; NSLog(@"rect2 : %@",NSStringFromRect(rect2)) ;
mainScreenのframeでメインスクリーンのサイズが取得できる。
visibleFrameの値はDockの設定で変わってくる。
実行結果
上記のプログラムをMacBook Pro 17インチで実行した結果
Dockの設定で「Dockを自動的に隠す/表示」をONにした場合
frameはメインスクリーンのサイズ、visibleFrameはメニューバーの高さを除いたサイズが取得できる。
rect1 : {{0, 0}, {1680, 1050}} rect2 : {{0, 4}, {1680, 1024}}
Dockの設定で「Dockを自動的に隠す/表示」をOFFにした場合
visibleFrameはメニューバーの高さとDockの高さを除いたサイズを返しているようだ。
rect1 : {{0, 0}, {1680, 1050}} rect2 : {{0, 38}, {1680, 990}}