visibleFrame
メソッドを使用しNSScreen
ていますが、表示されている長方形からメニューバー領域を差し引いていないように見えます(ドックは画面の下部に配置されています)。以下のコードの出力から明らかです。
NSRect visibleFrame = [screenInfo visibleFrame];
NSLog(@"\nx=%f , y=%f\nw=%f , h=%f",visibleFrame.origin.x,visibleFrame.origin.y,visibleFrame.size.width,visibleFrame.size.height);
NSRect screenFrame1 = [screenInfo frame];
NSLog(@"\nx=%f , y=%f\nw=%f , h=%f",screenFrame1.origin.x,screenFrame1.origin.y,screenFrame1.size.width,screenFrame1.size.height);
出力は次のとおりです。
Visible Rect
x=0.000000 , y=80.000000
w=1920.000000 , h=1000.000000
スクリーン長方形
x=0.000000 , y=0.000000
w=1920.000000 , h=1080.000000
上記の出力から、ドックの高さが 80 であると推測できます (表示されている四角形の原点の "Y" 座標が 80 であるため)。したがって、表示される長方形の高さは次のようになるはずです:
(画面の高さ - ドックの高さ - メニューバーの高さ)
は次のようになります:
1080 - 80 - メニューバーの高さ
、これはどのような状況でも 1000 未満である必要がありますですが、上記の出力に見られるように、正確に 1000 です。これは、メニュー バーの高さが差し引かれていないことを意味します。
これはバグvisibleFrame
ですか、それともどこかで間違いを犯していますか?