---
title: PKToolPickerObserver
framework: pencilkit
role: symbol
role_heading: Protocol
path: pencilkit/pktoolpickerobserver
---

# PKToolPickerObserver

An interface you use to detect when the user changes the selected tools and drawing characteristics of a tool picker object.

## Declaration

```swift
@MainActor protocol PKToolPickerObserver : NSObjectProtocol
```

## Overview

Overview Implement the methods of PKToolPickerObserver to detect when the user changes the configuration of a PKToolPicker view. Each time the user changes the selected tool or other drawing characteristics, the tool picker notifies any registered observers. You use these notifications to update the configuration of the underlying canvas. To register an observer with a tool picker, call the addObserver(_:) method of the PKToolPicker object.

## Topics

### Detecting tool configuration changes

- [toolPickerSelectedToolItemDidChange(_:)](pencilkit/pktoolpickerobserver/toolpickerselectedtoolitemdidchange(_:).md)
- [toolPickerIsRulerActiveDidChange(_:)](pencilkit/pktoolpickerobserver/toolpickerisruleractivedidchange(_:).md)

### Monitoring visibility changes

- [toolPickerVisibilityDidChange(_:)](pencilkit/pktoolpickerobserver/toolpickervisibilitydidchange(_:).md)
- [toolPickerFramesObscuredDidChange(_:)](pencilkit/pktoolpickerobserver/toolpickerframesobscureddidchange(_:).md)

### Deprecated

- [toolPickerSelectedToolDidChange(_:)](pencilkit/pktoolpickerobserver/toolpickerselectedtooldidchange(_:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [PKCanvasView](pencilkit/pkcanvasview.md)

## See Also

### Detecting changes to the picker

- [addObserver(_:)](pencilkit/pktoolpicker/addobserver(_:).md)
- [removeObserver(_:)](pencilkit/pktoolpicker/removeobserver(_:).md)
