<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 18.0.0 -",
    "visionOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PencilKit",
  "identifier" : "/documentation/PencilKit/PKToolPicker/Delegate-swift.protocol",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "PencilKit"
    ],
    "preciseIdentifier" : "c:objc(pl)PKToolPickerDelegate"
  },
  "title" : "PKToolPicker.Delegate"
}
-->

# PKToolPicker.Delegate

```
@MainActor protocol Delegate : NSObjectProtocol
```

## Topics

### Instance Methods

[`func toolPickerWillDismiss(PKToolPicker) -> Bool`](/documentation/PencilKit/PKToolPicker/Delegate-swift.protocol/toolPickerWillDismiss(_:))

This is called when the user dismisses the tool picker using a built-in control.
This is **not** called when the tool picker hides from a responder change or other programatic request.
By default, using the dismissal control on the tool picker causes the tool picker to resign the first responder.
The delegate may override that default behavior, taking responsibility for the dismissal of the picker, by returning true from this method.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)