<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PencilKit",
  "identifier" : "/documentation/PencilKit/PKToolPickerObserver",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "PencilKit"
    ],
    "preciseIdentifier" : "c:objc(pl)PKToolPickerObserver"
  },
  "title" : "PKToolPickerObserver"
}
-->

# PKToolPickerObserver

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

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

## Overview

Implement the methods of [`PKToolPickerObserver`](/documentation/PencilKit/PKToolPickerObserver) to detect when the user changes the configuration of a [`PKToolPicker`](/documentation/PencilKit/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(_:)`](/documentation/PencilKit/PKToolPicker/addObserver(_:)) method of the [`PKToolPicker`](/documentation/PencilKit/PKToolPicker) object.

## Topics

### Detecting tool configuration changes

[`toolPickerSelectedToolItemDidChange(_:)`](/documentation/PencilKit/PKToolPickerObserver/toolPickerSelectedToolItemDidChange(_:))

Tells the observer when a person selects a new tool item.

[`toolPickerIsRulerActiveDidChange(_:)`](/documentation/PencilKit/PKToolPickerObserver/toolPickerIsRulerActiveDidChange(_:))

Tells the observer when a person shows or hides the ruler.

### Monitoring visibility changes

[`toolPickerVisibilityDidChange(_:)`](/documentation/PencilKit/PKToolPickerObserver/toolPickerVisibilityDidChange(_:))

Tells the observer when a person shows or hides the tool picker.

[`toolPickerFramesObscuredDidChange(_:)`](/documentation/PencilKit/PKToolPickerObserver/toolPickerFramesObscuredDidChange(_:))

Tells the observer when the area that the tool picker obscures changes.

### Deprecated

[`toolPickerSelectedToolDidChange(_:)`](/documentation/PencilKit/PKToolPickerObserver/toolPickerSelectedToolDidChange(_:))

Tells the observer when a person selects a new tool.



---

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)