Swift:如何将 NSView 旋转 45 度?

Yum*_*nc. 5 macos cocoa nsview swift

我想展示我的对象,在绘制内部组件后,滚动到 45 度角。我怎样才能轻松实现这一目标?

该对象是用 a 的子类绘制的NSView。它结合了多重NSBezierPath和填充,包括弧线等。然后同一个对象在不同的​​旋转位置使用几次 -不是动画!

我使用该NSView.rotate(byDegrees:)方法,但它似乎只适用于 90 度的因素 - 其他角度似乎会缩放并省略曲线(奇怪的结果)。

您可能不需要代码,但这是对象:

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
    wantsLayer = true
    layer?.masksToBounds = false
    let context = NSGraphicsContext.current!.cgContext
    let path = NSBezierPath(ovalIn: dirtyRect)
    NSColor.red.setFill()
    path.fill()
}
Run Code Online (Sandbox Code Playgroud)

然后:

let object = MyObject(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
view.addSubView(object)
object.rotate(byDegrees: 23)
Run Code Online (Sandbox Code Playgroud)

我想看到很多MyObjects,每个都转动不同的量。我怎样才能轻松做到这一点?