macos - 如何在 OSX 10.7+ 上捕捉并禁止 "fullscreen"(绿色)按钮?

标签 macos fullscreen osx-yosemite nswindow

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

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

    [self switchToOtherSize];
    return NO;
}

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

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

有办法做到这一点吗?

我尝试了以下方法,它有效,但抛出了一个丑陋的异常,表明该方法应该返回一个包含“全屏”的值。

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

    return NSApplicationPresentationDefault;
}

最佳答案

对我来说,这会起作用(10.10 和 10.11):

[self.window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];

关于macos - 如何在 OSX 10.7+ 上捕捉并禁止 "fullscreen"(绿色)按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31773481/

相关文章:

java - 终端动画 - 清除屏幕是正确的方法吗?

macos - Bazel 为 TensorFlow 初始模型构建

python - 使用 Python 2.7.3 IEPD_free(32 位)在 Mac OS x 10.7.5 中运行 Scrapy 所需的文件

web-applications - 如何创建全屏 sencha touch 2 网络应用程序?

java - 当我的 Java 应用程序在 Ubuntu 中运行时,如何防止 Alt 键打开 Dash Home?

xcode - OSX 列表组件 Objective-C

html - 全屏图像直到滚动(响应)

git svn clone 在 OSX 上死于信号 11

ruby - 如何安装旧版本的 Jekyll?

c++ - SDL 无法通过 2.1 Mac OSX Yosemite 加载 OpenGL 上下文