IBDesignable视图未呈现

Rob*_*Rob 2 macos xcode interface-builder swift ibdesignable

我有一个简单的@IBDesignable视图,已将其指定为macOS故事板场景中的顶级视图的基类。例如:

@IBDesignable
class OvalView: NSView {
    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        NSColor.red.setFill()
        NSBezierPath(ovalIn: bounds).fill()
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,此视图看起来很好。但是这个可设计的视图没有在Interface Builder中呈现在我的场景中:

在此处输入图片说明

注意,仅当相关视图是场景的顶级视图时,此问题才会显现。如果我对子视图执行此操作,则效果很好:

在此处输入图片说明

Rob*_*Rob 5

问题是,@IBDesignable如果Interface Builder是场景中的顶层视图,则它似乎无法在Interface Builder中正确渲染macOS视图。它会在iOS中运行,但不会在macOS中运行。在macOS中,如果它是子视图,则仅在Interface Builder中呈现可设计视图,而不是顶层视图。

我已经提交了错误报告。#27817119