关闭窗口(“X”)按钮在 MacOs 11.7(过剩)上处于非活动状态

问题描述 投票:0回答:1

我在 C++ 上使用 GLUT 有简单的代码:

#include <GLUT/glut.h>

void myDisplayFunc() {}
void myCloseFunc() {}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
    glutInitWindowSize(640, 480);

    glutCreateWindow("GLUT Program");
    glutWMCloseFunc(myCloseFunc);
    glutDisplayFunc(myDisplayFunc);

    glutMainLoop();
    return 0;
}

当我在 MacOs 10.14 上构建它时,所有窗口按钮(关闭、最大化、最小化)都处于活动状态,但是当我在 MacOs 11.7 上构建相同的代码时,关闭按钮(“X”)处于非活动状态(灰色)。我该如何修复它?

我寻找了其他函数而不是 glWMCloseFunc,但没有运气。此函数被标记为已弃用,但所有其他函数也是如此。

c++ macos glut
1个回答
0
投票

为了解决这个问题,我在 Objective-C 中编译了一个静态库,并在 XCode 中使用了 C 接口。我将以下代码添加到该库中:

NSWindow *window = [[NSApplication sharedApplication] keyWindow];

window.styleMask |= NSWindowStyleMaskClosable;
[[window standardWindowButton:NSWindowCloseButton] setHidden:NO];
[[window standardWindowButton:NSWindowCloseButton] setEnabled:YES];

我在 glutSetWindowTitle 函数之后调用了这个函数。

© www.soinside.com 2019 - 2024. All rights reserved.