我需要屏幕邊界來知道最小和最大的x/y座標。我的屏幕分辨率是1440x900。當我問NSScreen爲可見幀,即NSScreen的可見框太大
NSRect frame = [[NSScreen mainScreen] visibleFrame]
我碰到下面的x/y值:
xMin = NSMinX(frame) // 74
yMin = NSMinY(frame) // 0
xMax = NSMaxX(frame) // 1440
yMax = NSMaxY(frame) // 878
我左側的碼頭,所以我XMIN較大0和ymin是0.但問題是yMax。據我所知,菜單欄是44像素高,因此yMax應該是900 - 44 = 856像素。根據NSScreen,菜單欄最多可以使用22個像素。那個怎麼樣?
有關我的用例的更多信息:我通過Applescript調整窗口位置和窗口大小。要知道哪些值是允許的,即在可見幀內,我需要檢查NSScreen的可見幀。但是,NSScreen從左下角開始計算像素,而Applescript從左上角開始。在構建NSScreen從左上角返回其座標的過程中,我遇到了這個問題。
變換的可見幀的yMin爲22,因此距離上限爲22個像素。我直接對Applescript進行了實驗,發現每個44以下的yMin都會被調整爲44,因爲菜單欄佔據了從0到43像素的空間。
我希望我的解釋不是太混亂。最後,問題是實驗顯示菜單欄高44像素,而NSScreen僅剩下22個像素可用於菜單欄(因爲它的高度是900像素屏幕上的878像素)。
編輯:菜單欄的高度爲 22像素。發現者如何處理與他的界限有關的事件是一個問題。
我的菜單欄是22像素高(或在該範圍內的東西)。絕對不是44. – 2011-04-23 11:28:24