2014-02-26 5 views
1

비디오 및 이미지의 슬라이드 쇼를 제공하는 Cocoa 응용 프로그램을 만들고 있습니다. 예를 들어 Mac mini에 여러 개의 스크린이 연결되어 있다면 각 스크린에 다른 컨텐츠가 표시되기를 원합니다. 각 NSWindow는 각 NSScreen에서 전체 화면이어야합니다.OSX에서 여러 화면에서 전체 화면을 실행하는 방법

OSX 10.8에서 이것을 개발할 때 NSBindlessWindowMask를 사용하여 각 NSWindow 프레임을 NSScreen 프레임으로 설정했습니다. 나는 명시 적으로 NSApplicationPresentationFullScreen을 NSApplication에 사용하지 않았고 NSApplicationPresentationHideDock과 NSApplicationPresentationAutoHideMenuBar를 사용했습니다.

이 접근 방식에는 몇 가지 문제가있는 것으로 보입니다. 일부 OSX 이벤트는 메뉴 막대를 강제로보고 창을 영구히 이동하는 것처럼 보입니다.

OSX Mavericks가 전체 화면 지원을 업데이트 했으므로 더 나은 접근 방법이 있습니까? NSApplication을 실제 전체 화면 모드로 열고 각 NSScreen에 별도의 NSWindow를 적용 할 수 있습니까?

감사합니다.

답변

3

당신은 스크린 당 하나의 NSWindow를 인스턴스화하고이를 전체 화면으로 전환 할 수 있습니다 :

[self.windowA setFrame:[[[NSScreen screens] firstObject] visibleFrame] display:NO]; 
[self.windowB setFrame:[[[NSScreen screens] lastObject] visibleFrame] display:NO]; 
[self.windowA toggleFullScreen:nil]; 
[self.windowB toggleFullScreen:nil]; 
+1

3 화면에 그 일이 비록 것인가? :-) – cacau

+0

위 코드는 가능하지 않습니다.하지만 2 개 이상의 창을 지원하도록 수정하는 것은 매우 쉽습니다. –

+0

고맙습니다. 첫 번째 단계는 현재 내가하고있는 일입니다. 하지만 창에서 toggleFullScreen을 호출하지 않았습니다. 그 행동이 바뀌는 지 알게 될 것입니다. – Giles