我正在开发一个Cocoa Mac应用程序,我需要在辅助显示器上全屏显示窗口/视图。
我知道如何创建一个可以拖到辅助显示器上的窗口,但我想以编程方式创建窗口,并使其在外部显示器上全屏显示。
发布于 2008-12-30 20:29:32
首先,通过在[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()
。
发布于 2008-12-30 20:36:59
您可以调用NSView
的enterFullScreenMode:withOptions:
方法来获得所需的行为。
参见Apple's documentation。
有关可以提供给此方法的选项,请阅读here和here。
您可以使用[NSScreen screens]
获取可用屏幕的列表。详情请参见here。
发布于 2015-01-22 17:56:01
全屏窗口动画起伏不定,在我看来不是很好。全屏视图要平滑得多。
试试这个:
- (void)toggleMyViewFullScreen:(id)sender
{
if (myView.inFullScreenMode) {
[myView exitFullScreenModeWithOptions:nil];
} else {
NSApplicationPresentationOptions options =
NSApplicationPresentationHideDock |
NSApplicationPresentationHideMenuBar;
[myView enterFullScreenMode:[NSScreen mainScreen] withOptions:@{
NSFullScreenModeApplicationPresentationOptions : @(options) }];
}];
}
}
您可以将其连接到窗口菜单中的全屏菜单项(将其插入到您的笔尖中),但请确保将菜单项触发的操作更改为您的toggleMyViewFullScreen:。或者,您可以通过编程方式或在加载应用程序时调用toggleMyViewFullScreen。
https://stackoverflow.com/questions/401240
复制相似问题