MAC超级窗口最大化按钮C

Mac override window maximize button c++

本文关键字:按钮 最大化 窗口 MAC      更新时间:2023-10-16

我正在编写一个应用程序,我想更改Mac上窗口最大化按钮的默认行为。由于很少有最新版本的macOS默认将应用程序置于全屏模式,但是这不是我想要的。我想要与Windows OS相同的行为。

我正在使用C 。理想情况下,我想要的是拦截一些窗口功能回调,禁用输入全屏,而只是最大化窗口到整个桌面工作区域。这个怎么做?谢谢

,很难为您提供帮助,因为没有本机C 对可可的绑定。如果您使用C 进行编程,则必须使用一些第三方库,例如QT或SDL或类似的内容,但是您忽略了告诉我们什么。

另外,MacOS没有,也从来没有"最大化"功能,更不用说像Windows这样的功能了。它在Windows上具有变焦操作,但这不是同一回事。它只是一个自动化的调整大小,它不会将窗口置于锁定到新尺寸的模式之前。

无论如何,要实现所需的目标,您应该将窗口的collectionBehavior属性设置为包括NSWindowCollectionBehaviorFullScreenNone不是 NSWindowCollectionBehaviorFullScreenPrimaryNSWindowCollectionBehaviorFullScreenAuxiliary。因此,在Objective-C( )中:

window.collectionBehavior &= ~(NSWindowCollectionBehaviorFullScreenPrimary | NSWindowCollectionBehaviorFullScreenAuxiliary);
window.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone;

如果您的窗口是在笔尖中定义的,则可以在属性Inspector中将其全屏行为设置为无。

为nswindow设置此功能:

   self.collectionBehavior|=NSWindowCollectionBehaviorFullScreenNone;