首页 > 解决方案 > NSScrollView 是如何实现这样的内容视图的呢?

问题描述

在此处输入图像描述

这是我在另一个应用程序中看到的。它的 NSScrollView 视图不知道如何实现跨界。

如何做到这一点?

标签: swiftmacoscocoansscrollview

解决方案


自 Yosemite (macOS 10.10) 以来,此行为已内置到 AppKit 中。如果您的滚动视图与您的工具栏或标题栏相邻,您通常不需要做任何事情来使内容在顶部栏下显示模糊。

如果它不起作用,您可能需要添加NSWindow.StyleMask.fullSizeContentView到您的窗口styleMask并使用窗口调整您的内容视图布局,contentLayoutRect或者contentLayoutGuide明确地将内容放在顶部栏后面。

观看WWDC 2014 Session 220:采用 OS X Yosemite 新 UI 的高级功能。它在标题为“标题栏和工具栏”的部分中讨论了行为和 API,该部分开始于 7 分 3 秒左右。

更新

再次查看您的屏幕截图,我注意到顶部栏下的内容实际上并未模糊,因此这不是内置 AppKit 行为的情况。

我相信应用程序正在做的是在窗口中使用.fullSizeContentViewstyleMask并将窗口的titlebarAppearsTransparent属性设置为 true。然后应用程序在窗口顶部添加一个部分透明的视图,覆盖滚动视图的顶部。

titlebarAppearsTransparent我在上面链接的 WWDC 视频中也讨论了该属性。


推荐阅读