2013-08-21 4 views
0

내 앱의 메뉴 추가 아이콘은 의미있는 정보를 사용자에게 반영해야합니다. 그러나 미리 아이콘을 그리는 경우가 너무 많습니다. 즉석에서 아이콘을 프로그램 적으로 준비하는 것이 더 쉬울 것입니다. NSImage의 크기 (점 또는 픽셀 단위)를 얻고 망막 및 비 망막 디스플레이를 완벽하게 볼 수있는 가장 좋은 방법은 무엇입니까?망막/비 망막 : 드로잉 아이콘

답변

2

AppKit에서 포인트의 뷰 크기는 frame을 통해 검색 할 수 있습니다. 10.7 이후 각 화면에는 추가로 backingScaleFactor이 있습니다. 따라서 특정 화면에서보기가 표시되는 픽셀 단위의 크기는 프레임의 크기에 화면의지지 축척 인수를 곱하여 구할 수 있습니다.

예. 정확히 하나 개의 화면을 컴퓨터에서 할 수있다 :

CGFloat backingScaleFactor = [[NSScreen mainScreen] backingScaleFactor]; 

NSSize pixelSize = 
    NSSizeMake(
     view.frame.size.width * backingScaleFactor, 
     view.frame.size.height * backingScaleFactor); 

은 그래서 하나의 대답은 [NSScreen screens]에 아무것도 최대 규모 계수를 취할 것 같다.

편집 :하지만 더 나은 대답은보기의 convertSizeToBacking:을 사용하는 것입니다.

pixelSize = [view convertSizeToBacking:view.frame.size]; 
+0

정상적으로 표시되는 경우보다 정확하게 이해하면 backingScaleFactor는 망막 디스플레이의 이중이어야합니다. –

+0

@PeterG 그래야합니다. 그러나 나는 애플이'convertSizeToBacking :'과 이것을 자동으로하기위한 여러 가지 방법을 제공 한 것을 잊었다. 아마 더 똑똑해. – Tommy

+0

그럼 convertSizeToBacking :을 살펴 보겠습니다. 고맙습니다. –

관련 문제