2015-01-30 4 views
0

두 개의 디스플레이에 대해 창 크기를 조정 해 봅니다.코코아 - 창 크기를 전체 화면으로 조정. 이중 디스플레이

요세미티에는 "디스플레이에 별도의 공백이 있습니다"라는 설정에 따라 달라집니다. [NSScreen screensHaveSeparateSpaces]에 따라 달라집니다.

NO으로 설정하면 NSWindow을 모든 화면에 맞게 조정할 수 있으며 [window setLevel:CGShieldingWindowLevel()]으로 설정할 수 있습니다.

screensHaveSeparateSpacesYES으로 설정되면, 나는 창 절반 만 볼 수 있습니다.

NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys: 
     [NSNumber numberWithBool:YES], NSFullScreenModeAllScreens, 
     nil]; 

NSView *view = [window contentView]; 
[view enterFullScreenMode:[NSScreen mainScreen] withOptions:opts]; 

NSRect frame = [view.window frame]; 
frame.size.width *= 2; 
[view.window setContentSize:frame.size]; 

NSView

이 사실 모든 화면 크기를 조정하지만, NSView 내 왼쪽 기본 디스플레이를 채운다 - 보조 (오른쪽) 화면이 검은 색 유지 : 내가 노력하고있어.

screensHaveSeparateSpacesYES을 반환하면 NSView을 전체 화면 (듀얼 디스플레이)으로 어떻게 조정할 수 있습니까?

답변

0

수 없습니다. 창이 하나의 공간에만 존재합니다. 각 화면에 별도의 공간이 있으면 두 화면 모두에 하나의 창을 가질 수 없습니다. 최선의 방법은 각 창에 하나씩 두 개의 창을 만들어 가짜로 만들려고 시도하는 것이지만 가능한 일인지 확신 할 수는 없습니다. 여러 공간에 창문이있는 응용 프로그램을 만들 수 있다고 가정하면 두 창을 서로 동기화하여 유지하는 것이 중요하지 않습니다.

+0

왜 NSView가 모든 화면의 크기를 조정하고 하나의 디스플레이 만 페인트합니까? 그것은 이상하게도 –

+0

입니다 NSViews는 "추상적 인"것입니다. NSView를 원하는만큼 크거나 작게 만들 수 있습니다. 창보기 계층에있을 수도 있고 그렇지 않을 수도 있습니다. 그것은 단지 데이터 구조 일뿐입니다. – ipmcc