     // MARK: - Override Methods
     open override func draw(_ rect: CGRect) {
         #if os(iOS)
-            UIGraphicsBeginImageContext(rect.size)
-            self.image?.draw(at: CGPoint(x: 0, y: 0))
+        UIGraphicsBeginImageContext(rect.size)
+        self.image?.draw(at: CGPoint(x: 0, y: 0))
         #else
-            self.image?.lockFocus()
+        self.image?.draw(at: NSZeroPoint, from: NSZeroRect, operation: .copy, fraction: 1.0)
         #endif
 
         // Setup

    private func configuration() {
        #if os(iOS)
        self.isUserInteractionEnabled = true
        #endif
        self.delegate = self
    }

        self.delegate?.draw?()

        #if os(iOS)
        let drawnImage = UIGraphicsGetImageFromCurrentImageContext()
        self.image = drawnImage
        UIGraphicsEndImageContext()
        #else
        if let cgImage = NSGraphicsContext.current()?.cgContext.makeImage() {
            DispatchQueue.main.async {
                self.image = NSImage(cgImage: cgImage, size: self.frame.size)
                self.setNeedsDisplay()
            }
        }
        #endif

        if self.delegate?.draw == nil {
