NSScrollView如何实现这样的内容视图?

时间:2019-05-21 15:54:37

标签: swift macos cocoa nsscrollview

enter image description here

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

如何实现?

1 个答案:

答案 0 :(得分:0)

自Yosemite(macOS 10.10)起,此行为已内置到AppKit中。如果滚动视图与工具栏或标题栏相邻,则通常无需执行任何操作即可使内容显示在顶部栏的下方。

如果它不起作用,则可能需要向窗口的NSWindow.StyleMask.fullSizeContentView中添加styleMask并使用窗口的contentLayoutRectcontentLayoutGuide来调整内容视图的布局以显式放置内容在顶部栏的后面。

观看WWDC 2014 Session 220: Adopting Advanced Features of the New UI of OS X Yosemite。它在标题为“标题栏和工具栏”的部分中讨论了行为和API,该标题开始于7m03左右。

更新

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

我认为应用程序正在使用窗口.fullSizeContentView中的styleMask,并且还将窗口的titlebarAppearsTransparent属性设置为true。然后,该应用将在窗口顶部添加部分透明的视图,并覆盖滚动视图的顶部。

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