当应用程序处于全屏模式时,我需要使用缺口周围(和后面)的区域,“完全全屏”显示我的应用程序,并使用该区域显示元素,就好像那里没有缺口一样。
我知道这是菜单栏出现的地方,但我可以要么禁用菜单栏在全屏或使它的行为像旧的mac时,它会出现在超过应用程序后,我们移动光标在该地区更高。
我试过了(没有用):
- 玩安全区
- 在Xcode中隐藏检查菜单中的标题栏
- 完全删除菜单
- 将UI支持真实屏幕大小在Mac上=真实添加到列表中
我已经在谷歌和SO以及苹果的文档上搜索了几个小时,但还没有找到任何如何实现这一目标的迹象。
2条答案
按热度按时间e4eetjau1#
我不认为你可以使用全屏模式来实现这一点,因为没有公共API来覆盖你的窗口的全屏框架,以包括传感器 shell 周围的不安全区域(“缺口”)。
你应该可以通过查看
NSScreen
来手动实现这一点。将窗口的frame
设置为屏幕的frame
(而不是屏幕的visibleFrame
)。屏幕的auxiliaryTopLeftArea
和auxiliaryTopRightArea
描述了凹口左右的区域。从这些,你可以推断出被凹口遮挡的区域。acruukt92#
这是我如何设法做到这一点(简化仅供参考):
1.隐藏应用程序的"标题栏"
1.将窗框设置为全宽和全高(再次简化)
1.在您的plist中设置LSUIPresentationMode
如果不使用LSUIPresentationMode,甚至不隐藏标题栏,以下代码将以全屏模式启动应用程序,并在约1秒内填充notch周围的区域,但随后将恢复到notch下方的区域。
我想我也应该提到这一点,所以可能有办法实现这一点,而使用本机全屏