2017-12-21 8 views
1

私は現在Swiftを学んでいて、this tutorialに続いて、SwiftのAppKitからvibrantDarkプロパティを継承するNSWindowを作成しました。次のように私はWindowController.swiftファイルに追加のコードは次のとおりです。NSViewの外観をvibrantDarkにする

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

私は私のプログラムでNSPopoverため、同じ結果を達成されませんしたいと思います。しかし、LogViewController.swiftファイルに次のものを追加するとエラーが発生します。最初は「タイプ値 'NSView」にメンバー' titleVisibility 'がなく、2番目に「オプションで使用できませんタイプの非オプションの値に連鎖する「NSViewの。」」

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

いくつかpostsNSWindowため、この問題に対処してきたが、私はNSPopoverを解決する答えを見つけることができません。私は現在、ステータスバーにNSImageをクリックするとNSPopoverを開くように設定し、次の条件があります。

popover.contentViewController = LogViewController.freshController() 

私はNSViewとしてNSPopoverを持つことが問題を引き起こしているものであることを考えて、しかしだ - 私はまだ新たなんだとされてSwiftに - 私はこの問題をどのように診断するのか分かりません。それは、誰かが私を正しい方向に向けることができれば、私は非常に感謝しています。

答えて

1

あなたはNSPopover、ないNSViewを使用する必要があります。

var myPopover: NSPopover? 

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

あなたがcontentViewControllerを使用する場合:

var popoverViewController: NSViewController? 

myPopover?.contentViewController = self.popoverViewController 
+0

は 'NSAppearance.Name'は冗長です。 'myPopover?表示= NSAppearance(名前:.vibrantDark)'。 Btw Swiftでセミコロンを使用しないでください –

+0

@LeoDabusどのファイルにこれを入れてください。 – solo

+1

@rrodこれらは特定のNSWindowプロパティです。 NSViewにはappearanceまたはtitleVisibilityプロパティはありません。あなたはビュープロパティを 'view.window?.whatever'に設定することができます。これは、ウィンドウのプロパティがnilでない限りです(viewDidAppearメソッドで試してみてください) –

関連する問題