swift - NSScrollView是如何实现这样的内容 View 的呢?

标签 swift macos cocoa nsscrollview

enter image description here

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

如何实现这一目标?

最佳答案

自 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/

相关文章:

swift - 使用执行segue进入 Collection View

ios - 如何设置导航栏的返回项

从终端在 mac 中找不到 mysql 命令

macos - 如何在 NSSearchField 中自定义光标?

json - 在 Swift 中将 JSON 数据转换为 Double

swift - 不使用 AWSLexVoiceButton 向 Lex 发送音频(适用于 iOS 的 AWS sdk)

c - OSX 上的 SHGetFolderPath 等效于什么?

macos - 如何在 Mac 上降级和安装 ansible 1.9.4

macos - 如何使用 Cocoa 解析 Carbon AppleEvent(NSAppleEventDescriptor?)

c++ - 在混合图形芯片的低功耗端使用 OpenGL