2017-12-21 30 views
1

저는 Swift를 배우고 있습니다. Swift의 AppKit에서 vibrantDark 속성을 상속하는 NSWindow을 만들려면 this tutorial을 따라갔습니다. 다음과 같이 내가 WindowController.swift 파일에 추가하는 코드는 다음과 같습니다NSView 외관 vibrantDark 만들기

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를 해결하는 답을 찾을 수 없습니다. 난 여전히 새로운 해요로 인 - 나는 NSViewNSPopover를 갖는 문제의 원인이 무엇이라고 생각하지만,있어

popover.contentViewController = LogViewController.freshController() 

: 저는 현재 다음과 같은 조건이 상태 표시 줄에 NSImage을 클릭에 NSPopover을 열 설정 스위프트에게 -이 문제를 진단하는 방법을 모르겠습니다. 그것은 누군가가 올바른 방향으로 나를 가리킬 수 있다면, 나는 그것을 매우 감사 할 것이라고 말했다.

답변

1

당신은 NSPopover 아닌 NSView를 사용한다 :

var popoverViewController: NSViewController? 

myPopover?.contentViewController = self.popoverViewController 
+0

는'NSAppearance.Name'가 중복 :

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

당신이 contentViewController 사용합니다. 'myPopover?. 외관 = NSAppearance (이름 : .vibrantDark)'. Btw Swift에서 세미콜론을 사용하지 마십시오 –

+0

@LeoDabus 어떤 파일에이 파일을 넣어야합니까? – solo

+1

@rrod 이는 특정 NSWindow 속성입니다. NSView는 appearance 또는 titleVisibility 속성을 가지고 있지 않습니다. 당신은 view 속성을'view.window? .whatever'로 설정할 수 있습니다. window 속성이 nil이 아니라면 (viewDidAppear 메소드에서 시도하십시오) –