<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 11.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PencilKit",
  "identifier" : "/documentation/PencilKit/PKTool-swift.protocol",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "PencilKit"
    ],
    "preciseIdentifier" : "s:9PencilKit6PKToolP"
  },
  "title" : "PKTool"
}
-->

# PKTool

An interface adopted by drawing and writing tools used by a canvas view.

```
protocol PKTool
```

## Overview

Drawing and writing tools associated with a [`PKCanvasView`](/documentation/PencilKit/PKCanvasView) adopt the [`PKTool`](/documentation/PencilKit/PKTool-swift.protocol) protocol. Tools are user-facing, and the selected tool determines how the canvas interprets incoming gestures.

Don’t adopt this protocol in your own objects. Instead, create a tool object to provide users with the desired the tool behavior.

## Relationships

### Conforming Types

[`PKEraserTool-swift.struct`](/documentation/PencilKit/PKEraserTool-swift.struct)

[`PKInkingTool-swift.struct`](/documentation/PencilKit/PKInkingTool-swift.struct)

[`PKLassoTool-swift.struct`](/documentation/PencilKit/PKLassoTool-swift.struct)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)