我正在学习Swift,我跟着this tutorial创建了一个NSWindow
,它继承了Swift中AppKit的vibrantDark
属性。我添加到WindowController.swift文件的代码如下:
window?.titleVisibility = .hidden
window?.appearance = NSAppearance(named: NSAppearance.Name.vibrantDark)
我想做的是在我的程序中为NSPopover
获得相同的结果;但是,当我将以下内容添加到我的LogViewController.swift文件时,我收到一个错误 - 第一个是“类型'NSView'的值没有成员'titleVisibility,'”,第二个是“不能使用可选链接“NSView”类型的非可选值。“
view?.titleVisibility = .hidden
view?.appearance = NSAppearance(named: NSAppearance.Name.vibrantDark)
几个posts已经为NSWindow
解决了这个问题,但我找不到解决NSPopover
的答案。我现在有以下条件设置为在状态栏中单击NSPopover
时打开NSImage
:
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