<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIPrinter/contactPrinter(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIPrinter(im)contactPrinter:"
  },
  "title" : "contactPrinter(_:)"
}
-->

# contactPrinter(_:)

Connects to the printer and gathers information about its capabilities.

```
func contactPrinter(_ completionHandler: ((Bool) -> Void)? = nil)
```

## Parameters

`completionHandler`

The block to execute with the results. This block has no return value and takes the following parameter:

- available: <doc://com.apple.documentation/documentation/Swift/true> if the printer was available and its information was retrieved or <doc://com.apple.documentation/documentation/Swift/false> if the printer could not be found or was unavailable.

## Discussion

For printers you create yourself using the [`init(url:)`](/documentation/UIKit/UIPrinter/init(url:)-1mibn) method, you must call this method prior to accessing properties containing printer-related information. This method runs asynchronously, returning immediately while the system continues to try and gather information about the printer’s name, location, capabilities, and so on. When the printer’s availability is determined, the results are delivered to the `completionHandler` block you provided.

Calling this method can take a significantly long time (up to 30 seconds), so after calling this method you should continue with other tasks. Use your completion handler block to update your app as appropriate.

---

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)