【发布时间】:2019-05-21 15:54:36
【问题描述】:
【问题讨论】:
标签: swift macos cocoa nsscrollview
【问题讨论】:
标签: swift macos cocoa nsscrollview
自 Yosemite (macOS 10.10) 以来,此行为已内置到 AppKit 中。如果您的滚动视图与您的工具栏或标题栏相邻,您通常不需要做任何事情来使内容在顶部栏下显示模糊。
如果它不起作用,您可能需要将 NSWindow.StyleMask.fullSizeContentView 添加到窗口的 styleMask 并使用窗口的 contentLayoutRect 或 contentLayoutGuide 调整内容视图布局,以明确地将内容放在顶部栏后面。
观看WWDC 2014 Session 220: Adopting Advanced Features of the New UI of OS X Yosemite。它在标题为“标题栏和工具栏”的部分中讨论了行为和 API,该部分开始于 7 分 3 秒左右。
再次查看您的屏幕截图,我注意到顶部栏下的内容实际上并未模糊,因此这不是内置 AppKit 行为的情况。
我相信应用正在做的是在窗口的styleMask 中使用.fullSizeContentView,并将窗口的titlebarAppearsTransparent 属性设置为true。然后应用程序在窗口顶部添加一个部分透明的视图,覆盖滚动视图的顶部。
我在上面链接的 WWDC 视频中也讨论了 titlebarAppearsTransparent 属性。
【讨论】: