---
title: "CTFontManagerRegisterFontDescriptors(_:_:_:_:)"
framework: coretext
role: symbol
role_heading: Function
path: "coretext/ctfontmanagerregisterfontdescriptors(_:_:_:_:)"
---

# CTFontManagerRegisterFontDescriptors(_:_:_:_:)

Registers font descriptors with the font manager.

## Declaration

```swift
func CTFontManagerRegisterFontDescriptors(_ fontDescriptors: CFArray, _ scope: CTFontManagerScope, _ enabled: Bool, _ registrationHandler: ((CFArray, Bool) -> Bool)?)
```

## Parameters

- `fontDescriptors`: An array of font descriptors to register. The font descriptor keys for registration are doc://com.apple.coretext/documentation/CoreText/kCTFontURLAttribute, doc://com.apple.coretext/documentation/CoreText/kCTFontNameAttribute, doc://com.apple.coretext/documentation/CoreText/kCTFontFamilyNameAttribute, or doc://com.apple.coretext/documentation/CoreText/kCTFontRegistrationUserInfoAttribute.
- `scope`: A scope constant that defines the availability and lifetime of the registration. If you specify doc://com.apple.coretext/documentation/CoreText/CTFontManagerScope/persistent when you register fonts on iOS, those fonts aren’t automatically available to other processes. Other processes can call doc://com.apple.coretext/documentation/CoreText/CTFontManagerRequestFonts(_:_:) to get access to those fonts. See doc://com.apple.coretext/documentation/CoreText/CTFontManagerScope for more details.
- `enabled`: A Boolean value that indicates whether the font descriptors should be enabled for font descriptor matching and discoverable though doc://com.apple.coretext/documentation/CoreText/CTFontManagerRequestFonts(_:_:).
- `registrationHandler`: A block called as errors arise or upon completion. The block’s errors parameter contains an array of doc://com.apple.documentation/documentation/CoreFoundation/CFError references; an empty array indicates no errors. Each error reference contains a doc://com.apple.documentation/documentation/CoreFoundation/CFArray of font descriptors corresponding to doc://com.apple.coretext/documentation/CoreText/kCTFontManagerErrorFontDescriptorsKey. These represent the font descriptors causing the error and failing to register successfully. This block may be called multiple times during the registration process. The done parameter becomes doc://com.apple.documentation/documentation/Swift/true when the registration process completes. Return doc://com.apple.documentation/documentation/Swift/false from the block to stop the registration operation, like after receiving an error.

## Discussion

Discussion Registered fonts are discoverable through font descriptor matching in the calling process. Fonts descriptors registered in a disabled state (the enabled parameter set to false) aren’t immediately available for descriptor matching, but the font manager knows the descriptors can be made available if necessary. You can enable these descriptors by calling this function again with the enabled parameter set to true. This operation may fail if there’s another registered and enabled font with the same PostScript name.

## See Also

### Functions

- [CTFontDescriptorMatchFontDescriptorsWithProgressHandler(_:_:_:)](coretext/ctfontdescriptormatchfontdescriptorswithprogresshandler(_:_:_:).md)
- [CTFontManagerCompareFontFamilyNames(_:_:_:)](coretext/ctfontmanagercomparefontfamilynames(_:_:_:).md)
- [CTFontManagerCopyAvailableFontFamilyNames()](coretext/ctfontmanagercopyavailablefontfamilynames().md)
- [CTFontManagerCopyAvailableFontURLs()](coretext/ctfontmanagercopyavailablefonturls().md)
- [CTFontManagerCopyAvailablePostScriptNames()](coretext/ctfontmanagercopyavailablepostscriptnames().md)
- [CTFontManagerCreateFontDescriptorFromData(_:)](coretext/ctfontmanagercreatefontdescriptorfromdata(_:).md)
- [CTFontManagerCreateFontDescriptorsFromURL(_:)](coretext/ctfontmanagercreatefontdescriptorsfromurl(_:).md)
- [CTFontManagerCreateFontRequestRunLoopSource(_:_:)](coretext/ctfontmanagercreatefontrequestrunloopsource(_:_:).md)
- [CTFontManagerEnableFontDescriptors(_:_:)](coretext/ctfontmanagerenablefontdescriptors(_:_:).md)
- [CTFontManagerGetAutoActivationSetting(_:)](coretext/ctfontmanagergetautoactivationsetting(_:).md)
- [CTFontManagerGetScopeForURL(_:)](coretext/ctfontmanagergetscopeforurl(_:).md)
- [CTFontManagerIsSupportedFont(_:)](coretext/ctfontmanagerissupportedfont(_:).md)
- [CTFontManagerRegisterFontsForURL(_:_:_:)](coretext/ctfontmanagerregisterfontsforurl(_:_:_:).md)
- [CTFontManagerRegisterFontsForURLs(_:_:_:)](coretext/ctfontmanagerregisterfontsforurls(_:_:_:).md)
- [CTFontManagerRegisterGraphicsFont(_:_:)](coretext/ctfontmanagerregistergraphicsfont(_:_:).md)
