---
title: PKTool
framework: pencilkit
role: symbol
role_heading: Protocol
path: pencilkit/pktool-swift.protocol
---

# PKTool

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

## Declaration

```swift
protocol PKTool
```

## Overview

Overview Drawing and writing tools associated with a PKCanvasView adopt the PKTool 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](pencilkit/pkerasertool-swift.struct.md)
- [PKInkingTool](pencilkit/pkinkingtool-swift.struct.md)
- [PKLassoTool](pencilkit/pklassotool-swift.struct.md)

## See Also

### Tools

- [Configuring the PencilKit tool picker](pencilkit/configuring-the-pencilkit-tool-picker.md)
- [PKToolPicker](pencilkit/pktoolpicker.md)
- [PKInkingTool](pencilkit/pkinkingtool-swift.struct.md)
- [PKEraserTool](pencilkit/pkerasertool-swift.struct.md)
- [PKLassoTool](pencilkit/pklassotool-swift.struct.md)
