2016-08-11 3 views
1

내 macOS 스토리 보드에 장면의 기본 클래스로 지정한 간단한 @IBDesignable보기가 있습니다. 예를 들어, 엑스 코드 (8), 스위프트 3 : 나는 응용 프로그램을 실행하면IBDesignable보기가 렌더링되지 않음

@IBDesignable class OvalView: NSView { 

    @IBInspectable var strokeColor: NSColor = .black { didSet { needsDisplay = true } } 

    @IBInspectable var brushSize: CGFloat = 5.0 { didSet { needsDisplay = true } } 

    override func draw(_ dirtyRect: NSRect) { 
     super.draw(dirtyRect) 

     strokeColor.setStroke() 

     let path = NSBezierPath(ovalIn: NSInsetRect(bounds, brushSize/2, brushSize/2)) 
     path.lineWidth = brushSize 
     path.stroke() 
    } 

} 

이보기는 잘 나타납니다. 그러나이 디자인 가능한 뷰는 Interface Builder의 내 장면에서 렌더링되지 않습니다. 왜?

이 문제는 Xcode 7.3.1에서도 위 코드의 Swift 2 변환을 통해 나타납니다.

답변

2

인터페이스 빌더가 장면의 최상위보기 인 경우 인터페이스 작성기가 Interface Builder에서 @IBDesignable macOS보기를 제대로 렌더링하지 못하는 것이 문제입니다. iOS에서는 가능하지만 macOS에서는 그렇지 않습니다. macOS에서 인터페이스 빌더가 상위 뷰가 아닌 하위 뷰인 경우에만 설계 가능 뷰를 렌더링합니다.

나는 버그 리포트를 제출했다. # 27817119

+0

이 버그 보고서가 이전과 중복되었음을 알리는 업데이트를 받았습니다. 그래서 애플은 적어도이 문제를 알고있다. – Rob

+1

이 버그는 여전히 XCode 8.3에 존재합니다 :( – Alnitak