1

In iOS Simulator, I've followed the basic steps to include PencilKit into my view controller. I got the toolKit in the UI but couldn't draw.. Not sure what I'm missing here. Sharing my code which I tried.

import UIKit
import PencilKit

class DrawingBoardViewController: UIViewController {

@IBOutlet weak var canvasView: PKCanvasView!

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)       
        setupCanvasView()
    }

 func setupCanvasView() {
                
        let toolPicker = PKToolPicker.init()
        toolPicker.setVisible(true, forFirstResponder: canvasView)
        toolPicker.addObserver(canvasView)
        toolPicker.isRulerActive = false
        canvasView.isOpaque = true
        canvasView.becomeFirstResponder()
        canvasView.drawingPolicy = .anyInput
        
    }
}

Kindly let me know what I'm missing here..

1 Answers1

2

This should fix your issue:

import UIKit
import PencilKit

class DrawingBoardViewController: UIViewController {

@IBOutlet weak var canvasView: PKCanvasView!

let toolPicker = PKToolPicker.init()

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)       
        setupCanvasView()
    }

 func setupCanvasView() {
                
        toolPicker.setVisible(true, forFirstResponder: canvasView)
        toolPicker.addObserver(canvasView)
        toolPicker.isRulerActive = false
        canvasView.isOpaque = true
        canvasView.becomeFirstResponder()
        canvasView.drawingPolicy = .anyInput
        
    }
}
vmanjz
  • 1,156
  • 1
  • 10
  • 23
  • Still no luck !! I'm getting the toolPicker in display and `PKCanvasViewDelegate` methods also gets called. But couldn't see the drawings – Dayanithi Natarajan Aug 10 '21 at 07:14
  • 1
    @DayaKevin FYI, the code above executes in my environment, and I can see the picker and the drawing in a Simulator (iOS 14.5, iPhone 12 mini for comparison). It definitely requires the toolPicker to be an instance on the ViewController to be able to change pens in the toolPicker. There may an issue in how the .xib file or storyboard is setup. If you are able, can you post an excerpt of your "semi-working" Xcode project on Github or somewhere? I can check it out there. – vmanjz Aug 11 '21 at 05:35