我正在編寫一個應用程序,並且我想更改Mac上Window Maxize按鈕的默認行爲。 由於幾乎沒有最新版本的MacOS,它默認將應用程序置於全屏模式,但這不是我想要的。 我想要與Windows操作系統中的行爲相同。Mac覆蓋窗口最大化按鈕C++
我正在使用C++。 理想情況下,我想要攔截一些窗口函數回調,禁用進入全屏,而不是最大化整個桌面工作區的窗口。 如何做到這一點? 謝謝
我正在編寫一個應用程序,並且我想更改Mac上Window Maxize按鈕的默認行爲。 由於幾乎沒有最新版本的MacOS,它默認將應用程序置於全屏模式,但這不是我想要的。 我想要與Windows操作系統中的行爲相同。Mac覆蓋窗口最大化按鈕C++
我正在使用C++。 理想情況下,我想要攔截一些窗口函數回調,禁用進入全屏,而不是最大化整個桌面工作區的窗口。 如何做到這一點? 謝謝
由於Cocoa沒有本地C++綁定,所以很難爲您提供幫助。如果你使用C++進行編程,你必須使用像Qt或SDL之類的第三方庫或類似的東西,但是你忽略告訴我們這是什麼。另外,macOS沒有,也從來沒有「最大化」的功能,更不用說像Windows那樣了。它在窗口上有縮放操作,但這不是一回事。它只是一個自動調整大小,它不會將窗口置於鎖定到新大小的模式下,直到它恢復。
總之,要達到你想要什麼,你應該設置窗口的collectionBehavior
屬性包括NSWindowCollectionBehaviorFullScreenNone
和不NSWindowCollectionBehaviorFullScreenPrimary
或NSWindowCollectionBehaviorFullScreenAuxiliary
。因此,在Objective-C(++):
window.collectionBehavior &= ~(NSWindowCollectionBehaviorFullScreenPrimary | NSWindowCollectionBehaviorFullScreenAuxiliary);
window.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone;
如果在NIB定義你的窗口,你可以設置它的全屏行爲沒有在屬性檢查器。
設置此爲NSWindow沒有的伎倆:
self.collectionBehavior|=NSWindowCollectionBehaviorFullScreenNone;
謝謝,只是能弄清楚我自己。 BTW。我使用我自己的遊戲引擎 - http://esenthel.com/ – Esenthel