使 NSView 外观 vibrantDark

Making NSView appearance vibrantDark

我目前正在学习 Swift,我跟着 this tutorial 创建了一个 NSWindow,它继承了 vibrantDark 属性 中的 AppKit Swift。我在WindowController.swift文件中添加的代码如下:

window?.titleVisibility = .hidden
window?.appearance = NSAppearance(named: NSAppearance.Name.vibrantDark)

我想做的是在我的程序中为 NSPopover 实现相同的结果;然而,当我将以下内容添加到我的 LogViewController.swift 文件时,我收到一个错误——第一个错误是 "Value of type 'NSView' has no member 'titleVisibility,'",第二个错误是 "Cannot use optional chaining on non-optional value of type 'NSView.'"

view?.titleVisibility = .hidden
view?.appearance = NSAppearance(named: NSAppearance.Name.vibrantDark)

几个 posts 已经为 NSWindow 解决了这个问题,但我找不到解决 NSPopover 的答案。我目前将以下条件设置为在单击状态栏中的 NSImage 时打开 NSPopover

popover.contentViewController = LogViewController.freshController()

我认为 NSPopover 作为 NSView 是导致问题的原因,但是 - 因为我对 Swift 还是新手 - 我不是确定如何诊断这个问题。也就是说,如果有人能指出我正确的方向,我将不胜感激。

您应该使用 NSPopover,而不是 NSView:

var myPopover: NSPopover?

myPopover = NSPopover.init()
myPopover?.appearance = NSAppearance(named: .vibrantDark)

如果你想使用 contentViewController:

var popoverViewController: NSViewController?

myPopover?.contentViewController = self.popoverViewController