가장 작고 큰 x/y 좌표를 알기 위해서는 화면 경계가 필요합니다. 내 화면 해상도는 1440x900입니다.NSScreen의 보이는 프레임이 너무 큽니다.
xMin = NSMinX(frame) // 74
yMin = NSMinY(frame) // 0
xMax = NSMaxX(frame) // 1440
yMax = NSMaxY(frame) // 878
내가 이렇게 내이 xMin이 0 Ymin를가 큰, 왼쪽에있는 독을 가지고 : 나는 즉, 눈에 보이는 프레임
NSRect frame = [[NSScreen mainScreen] visibleFrame]
을 NSScreen을 물어 보면 나는 다음과 같은 X/Y 값을 얻을 그러나 문제는 yMax입니다. 내가 말할 수있는 한 메뉴 막대는 44 픽셀이므로 yMax는 900 - 44 = 856 픽셀이어야합니다. NSScreen에 따르면 메뉴 막대는 최대 22 픽셀까지 사용할 수 있습니다. 방법 것입니다?
내 사용 사례에 대한 추가 정보 : AppleScript로 창 위치와 창 크기를 조정합니다. 허용되는 값, 즉 보이는 프레임 내부의 값을 확인하려면 NSScreen의 표시 프레임을 확인해야합니다. 그러나 NSScreen은 왼쪽 하단에서 픽셀을 계산하기 시작하고 AppleScript는 왼쪽 상단부터 시작합니다. NSScreen이 좌상단에서 좌표를 반환하는 메서드를 만드는 과정에서이 문제가 발생했습니다.
변환 된 가시 프레임의 yMin은 22이므로 상한선에서 22 픽셀입니다. 나는 Applescript를 직접 실험했고 메뉴 막대가 0에서 43 픽셀까지의 공간을 차지하기 때문에 44 이하의 모든 yMin이 44로 조정된다는 것을 알았습니다.
내 설명이 너무 혼란스럽지 않았 으면 좋겠다. 결국 문제는 메뉴 막대가 44 픽셀 높이라는 것을 실험에서 보여 주지만 NSScreen은 메뉴 막대에 대해 22 픽셀 만 남겨 둡니다 (높이는 900 픽셀 스크린에서 878 픽셀이기 때문에).
EDIT : 메뉴 바 의 높이는 22 화소이다. 파인더가 자신의 경계에 관한 사건을 처리하는 방법은 문제입니다.
내 메뉴 표시 줄의 높이가 22 픽셀 (또는 그 범위에있는 항목)입니다. 44. –