전체 화면 Mac 앱에서 작업. 일부 날씨 관련 정보를 표시하기 위해 webView를 사용하고 있습니다. 메인 화면에 나타나는 것처럼 연결된 모든 모니터 화면에 동일한 webView 내용을 표시 할 수 없습니다 (Airplay-mirroring
사용 안 함). 현재 다른 디스플레이의 배경 화면 만 설정할 수 있습니다. ([NSScreen screens]을 사용하여) 누군가 나에게 조언을 해줄 수 있습니까? 감사.Mac OSX - 연결된 모든 디스플레이에 동일한 앱 콘텐츠를 표시하는 방법
1
A
답변
1
너무 간단했습니다. "CGDisplayCapture"및 "CGShieldingWindowLevel()"과 같은 많은 관련 항목을 검색했지만 내 경우에는 그 필요성이 없습니다. 연결된 디스플레이가 다음 다른 화면 크기가 현재 화면이있을 수 있기 때문에 라인 아래
1 ..는 이제 화면 크기를 찾을 수 .. 당신에게 연결된 모든 화면
for (NSScreen *screen in [NSScreen screens]) { }
2를 제공 할 것입니다. 그리고 ALLOC 내 경우 바탕 화면 아이콘에서 parameter--
// Draw a new window to fill the screen
NSRect screenRect = CGRectMake(0, 0, screen.frame.size.width , screen.frame.size.height);
secondaryMonitorWindow = [[NSWindow alloc] initWithContentRect:screenRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO screen:screen];
3 .. 등 현재 화면과 현재 화면 사이즈로 새로운 윈도우 창을 통해 볼 수 있어야합니다 그래서 난 kCGDesktopWindowLevel로 윈도우 레벨을 설정합니다. 그리고이 창을 "makeKeyAndOrderFront"로 만들었습니다.
4 .. 우리는 하위보기로보기를 여러 창에 추가 할 수 없습니다. 그리고 새 창에는 내 메인 화면과 동일한보기가 필요합니다.
id copyOfView = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:self.webView]];
5 ..이보기에 동일한 화면 크기의 프레임을 할당하고 새로운 윈도우에 이것을 추가 - 그래서 이것과 동일한 뷰 복사본을 만들었다.
[copyOfView setFrame:screenRect];
[secondaryMonitorWindow.contentView addSubview:(WebView*)copyOfView];
완료되었습니다. 이제 두 디스플레이 모두 동일한 변경 사항을 적용하려면 두 창 개체 모두를 변경해야합니다.
다른 모니터의 사용에 방해가 될 수 있으므로 실제로이 작업을 수행하면 안됩니다. 전체 모니터 모드에서 두 개의 다른 응용 프로그램을 실행할 수 있기를 원하기 때문에 각 모니터마다 하나씩 두 개의 모니터가 있습니다. 그 외에도 두 개의 창을 만듭니다. 그러나 사람들이 그것을 좋아하지 않는다면 놀라지 마십시오. – gnasher729
abt를 검색 한 후 "Mini DisplayPort to VGA Adapter"를 사용하여 여러 대의 모니터를 연결할 수 있다는 것을 알았습니다. 더 많은 화면을 가지고 나면 메인 화면에 열려있는 모든 창을 다른 모니터에 배치 할 수 있습니다. 그러나 프로그래밍 방식으로 보조 모니터를 사용하여 게임하는 방법을 모릅니다. 우리는 코드를 통해 보조 모니터의 창을 열 수 있습니까 ??? – Yogendra