最佳答案
自 Yosemite (macOS 10.10) 以来,此行为已内置到 AppKit 中。如果您的 ScrollView 与工具栏或标题栏相邻,您通常不必执行任何操作即可使顶部栏下的内容显示模糊。
如果它不起作用,您可能需要将 NSWindow.StyleMask.fullSizeContentView
添加到窗口的 styleMask
并使用窗口的 contentLayoutRect< 调整内容 View 布局
或 contentLayoutGuide
将内容显式放置在顶部栏后面。
观看WWDC 2014 Session 220: Adopting Advanced Features of the New UI of OS X Yosemite 。它在标题为“标题栏和工具栏”的部分中讨论了行为和 API,该部分从大约 7 分 3 秒开始。
更新
再次查看您的屏幕截图,我注意到顶部栏下方的内容实际上并没有模糊,因此这不是内置 AppKit 行为的情况。
我相信应用程序正在执行的操作是在窗口的 styleMask
中使用 .fullSizeContentView
,并将窗口的 titlebarAppearsTransparent
属性设置为 true。然后应用程序在窗口顶部添加一个部分透明的 View ,覆盖 ScrollView 的顶部。
我上面链接的 WWDC 视频中也讨论了 titlebarAppearsTransparent
属性。
关于swift - NSScrollView是如何实现这样的内容 View 的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56242104/