문제

Cocoa Mac 앱에서 작업중인 2 차 모니터 인 전체 화면에 창/보기를 표시해야합니다. 보조 모니터로 드래그 할 수있는 창을 만드는 방법을 알고 있지만, 프로그래밍 방식으로 창을 만들고 외부 모니터에서 전체 화면을 만들고 싶었습니다. 도와 주셔서 감사합니다.

도움이 되었습니까?

해결책

먼저 [NSScreen 화면]을 반복하여 사용할 화면을 결정하십시오.

다음과 같이 전체 화면 창을 만듭니다.

NSScreen *screen = /* from [NSScreen screens] */
NSRect screenRect = [screen frame];
NSWindow *window = [[NSWindow alloc] initWithContentRect:screenRect
    styleMask:NSBorderlessWindowMask
    backing:NSBackingStoreBuffered
    defer:NO
    screen:screen];
[window setLevel: CGShieldingWindowLevel()];

Google CGDisplayCapture ()도 원할 수도 있습니다.

다른 팁

당신은 전화 할 수 있습니다 enterFullScreenMode:withOptions: 의 방법 NSView 원하는 행동을 아프게합니다.

보다 애플의 문서.

읽다 여기 그리고 여기 이 방법에 제공 할 수있는 옵션.

당신이 사용할 수있는 [NSScreen screens] 사용 가능한 화면 목록을 얻으려면 보다 여기 자세한 내용은.

전체 화면 창 애니메이션은 고르지 않으며 제 생각에는 좋아 보이지 않습니다. 전체 화면보기가 훨씬 부드럽습니다.

이 시도:

- (void)toggleMyViewFullScreen:(id)sender
{
    if (myView.inFullScreenMode) {
      [myView exitFullScreenModeWithOptions:nil];
    } else {
      NSApplicationPresentationOptions options =
          NSApplicationPresentationHideDock |       
          NSApplicationPresentationHideMenuBar;

      [myView enterFullScreenMode:[NSScreen mainScreen] withOptions:@{
             NSFullScreenModeApplicationPresentationOptions : @(options) }];
                                                                                 }];
    }
}

창 메뉴 (NIB에 삽입 한 후)의 전체 화면 메뉴 항목에 이것을 연결할 수 있지만 메뉴 항목이 ToggleMyViewfullScreen으로 발사되는 동작을 변경하십시오. 또는 ToggleMyViewfullScreen을 프로그래밍 방식으로 또는 앱을로드 할 때 호출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top