【问题标题】:How does NSScrollView implement such a content view?NSScrollView 是如何实现这样的内容视图的呢?
【发布时间】:2019-05-21 15:54:36
【问题描述】:

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

如何做到这一点?

【问题讨论】:

    标签: swift macos cocoa nsscrollview


    【解决方案1】:

    自 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,该部分开始于 7 分 3 秒左右。

    更新

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2016-06-04
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多