2008-12-30 67 views
12

我正在研究Cocoa Mac應用程序,我需要在輔助顯示器上全屏顯示窗口/視圖。我知道如何創建一個可以拖動到輔助顯示器上的窗口,但我希望以編程方式創建窗口並將其全屏顯示在外部顯示器上。謝謝您的幫助。使用Cocoa在輔助顯示器上顯示os x窗口全屏

回答

12

首先,通過迭代[NSScreen screens]來確定您想要使用哪個屏幕。

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()]; 

你可能想谷歌CGDisplayCapture(),以及:

與創建一個全屏窗口。

+0

謝謝你,這很好。由於我試圖輸出到次屏幕,我只是使用[窗口setLevel:NSStatusWindowLevel]; – Austin 2008-12-30 23:35:02

4

您可以撥打enterFullScreenMode:withOptions:方法NSView以獲得所需的行爲。

請參閱Apple's documentation

閱讀herehere瞭解可以提供給此方法的選項。

您可以使用[NSScreen screens]來獲取可用屏幕的列表。詳情請參閱here

+0

謝謝你的幫助。對於我正在嘗試做的事情,我認爲第一種解決方案對我來說最合適,但我必須牢記該觀點全屏方法。 – Austin 2008-12-30 23:33:03

0

全屏窗口動畫不穩定,在我看來不好看。全屏視圖更平滑。

試試這個:

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

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

您可以在此連接到窗口菜單的全屏菜單項(插入的是到您的筆尖後),但一定要更改操作的菜單項火災您toggleMyViewFullScreen :。或者,您可以以編程方式或加載應用時調用toggleMyViewFullScreen。

相關問題