首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Cocoa在辅助显示器上全屏显示macOS窗口

使用Cocoa在辅助显示器上全屏显示macOS窗口
EN

Stack Overflow用户
提问于 2008-12-30 19:36:45
回答 3查看 7.8K关注 0票数 12

我正在开发一个Cocoa Mac应用程序,我需要在辅助显示器上全屏显示窗口/视图。

我知道如何创建一个可以拖到辅助显示器上的窗口,但我想以编程方式创建窗口,并使其在外部显示器上全屏显示。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-30 20:29:32

首先,通过在[NSScreen screens]上迭代来确定要使用的屏幕。

使用以下命令创建全屏窗口:

代码语言:javascript
运行
复制
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()

票数 12
EN

Stack Overflow用户

发布于 2008-12-30 20:36:59

您可以调用NSViewenterFullScreenMode:withOptions:方法来获得所需的行为。

参见Apple's documentation

有关可以提供给此方法的选项,请阅读herehere

您可以使用[NSScreen screens]获取可用屏幕的列表。详情请参见here

票数 4
EN

Stack Overflow用户

发布于 2015-01-22 17:56:01

全屏窗口动画起伏不定,在我看来不是很好。全屏视图要平滑得多。

试试这个:

代码语言:javascript
运行
复制
- (void)toggleMyViewFullScreen:(id)sender
{
    if (myView.inFullScreenMode) {
      [myView exitFullScreenModeWithOptions:nil];
    } else {
      NSApplicationPresentationOptions options =
          NSApplicationPresentationHideDock |       
          NSApplicationPresentationHideMenuBar;

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

您可以将其连接到窗口菜单中的全屏菜单项(将其插入到您的笔尖中),但请确保将菜单项触发的操作更改为您的toggleMyViewFullScreen:。或者,您可以通过编程方式或在加载应用程序时调用toggleMyViewFullScreen。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/401240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档