如何捕获和禁止OSX 10.7 +上的“全屏”(绿色)按钮?

时间:2015-08-02 15:34:18

标签: macos fullscreen osx-yosemite nswindow

我使用以下代码更改窗口的大小和内容。

- (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame{

    [self switchToOtherSize];
    return NO;
}

现在,绿色按钮使应用程序全屏显示,此代码不再起作用,因为绿色按钮默认不再“缩放”。

我找不到类似的委托来捕捉绿色按钮上的点击操作并“返回NO”。

有办法做到这一点吗?

我尝试了以下内容,它可以正常工作但抛出一个丑陋的异常,该异常表示该方法应该返回一个包含“全屏”的值。

-(NSApplicationPresentationOptions)window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions{
    [self switchToOtherSize];

    return NSApplicationPresentationDefault;
}

2 个答案:

答案 0 :(得分:1)

对我来说,这将有效(10.10& 10.11):

[self.window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];

答案 1 :(得分:0)

如果您不想让您的窗口全屏显示,请不要在NSWindowCollectionBehaviorFullScreenPrimary窗口中添加collectionBehavior。在Interface Builder中,有一个"全屏"窗口属性检查器上的弹出菜单,您可以将其设置为“不支持”。

当禁用此功能时,绿色按钮将变回缩放按钮。