---
title: NSFontManager
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsfontmanager
---

# NSFontManager

The center of activity for the font-conversion system.

## Declaration

```swift
class NSFontManager
```

## Overview

Overview The font manager records the currently selected font, updates the Font panel and Font menu to reflect the selected font, initiates font changes, and converts fonts in response to requests from text-bearing objects. In a more prosaic role, NSFontManager can be queried for the fonts available to the application and for the particular attributes of a font, such as whether it’s condensed or extended. You typically set up a font manager and the Font menu using Interface Builder. However, you can also do so programmatically by getting the shared font manager instance and having it create the standard Font menu at runtime: NSFontManager *fontManager = [NSFontManager sharedFontManager]; NSMenu *fontMenu = [fontManager fontMenu:YES]; You can then add the Font menu to your app’s main menu. After the Font menu is installed, your app automatically gains the functionality of both the Font menu and the Font panel. Font collections are managed by NSFontManager.

## Topics

### Getting the Shared Font Manager

- [shared](appkit/nsfontmanager/shared.md)

### Changing the Default Font Conversion Classes

- [setFontManagerFactory(_:)](appkit/nsfontmanager/setfontmanagerfactory(_:).md)
- [setFontPanelFactory(_:)](appkit/nsfontmanager/setfontpanelfactory(_:).md)

### Getting Available Fonts

- [availableFonts](appkit/nsfontmanager/availablefonts.md)
- [availableFontFamilies](appkit/nsfontmanager/availablefontfamilies.md)
- [availableFontNames(with:)](appkit/nsfontmanager/availablefontnames(with:).md)
- [availableMembers(ofFontFamily:)](appkit/nsfontmanager/availablemembers(offontfamily:).md)

### Setting and Examining the Selected Font

- [setSelectedFont(_:isMultiple:)](appkit/nsfontmanager/setselectedfont(_:ismultiple:).md)
- [selectedFont](appkit/nsfontmanager/selectedfont.md)
- [isMultiple](appkit/nsfontmanager/ismultiple.md)
- [sendAction()](appkit/nsfontmanager/sendaction().md)
- [localizedName(forFamily:face:)](appkit/nsfontmanager/localizedname(forfamily:face:).md)

### Sending Action Methods

- [addFontTrait(_:)](appkit/nsfontmanager/addfonttrait(_:).md)
- [removeFontTrait(_:)](appkit/nsfontmanager/removefonttrait(_:).md)
- [modifyFont(_:)](appkit/nsfontmanager/modifyfont(_:).md)
- [modifyFontViaPanel(_:)](appkit/nsfontmanager/modifyfontviapanel(_:).md)
- [orderFrontStylesPanel(_:)](appkit/nsfontmanager/orderfrontstylespanel(_:).md)
- [orderFrontFontPanel(_:)](appkit/nsfontmanager/orderfrontfontpanel(_:).md)
- [NSFontAction](appkit/nsfontaction.md)

### Converting Fonts Automatically

- [convert(_:)](appkit/nsfontmanager/convert(_:).md)

### Converting Fonts Manually

- [convert(_:toFace:)](appkit/nsfontmanager/convert(_:toface:).md)
- [convert(_:toFamily:)](appkit/nsfontmanager/convert(_:tofamily:).md)
- [convert(_:toHaveTrait:)](appkit/nsfontmanager/convert(_:tohavetrait:).md)
- [convert(_:toNotHaveTrait:)](appkit/nsfontmanager/convert(_:tonothavetrait:).md)
- [convert(_:toSize:)](appkit/nsfontmanager/convert(_:tosize:).md)
- [convertWeight(_:of:)](appkit/nsfontmanager/convertweight(_:of:).md)
- [currentFontAction](appkit/nsfontmanager/currentfontaction.md)
- [convertFontTraits(_:)](appkit/nsfontmanager/convertfonttraits(_:).md)

### Getting a Particular Font

- [font(withFamily:traits:weight:size:)](appkit/nsfontmanager/font(withfamily:traits:weight:size:).md)

### Examining Fonts

- [traits(of:)](appkit/nsfontmanager/traits(of:).md)
- [fontNamed(_:hasTraits:)](appkit/nsfontmanager/fontnamed(_:hastraits:).md)
- [NSFontTraitMask](appkit/nsfonttraitmask.md)
- [weight(of:)](appkit/nsfontmanager/weight(of:).md)

### Managing the Font Panel and Font Menu

- [isEnabled](appkit/nsfontmanager/isenabled.md)
- [fontPanel(_:)](appkit/nsfontmanager/fontpanel(_:).md)
- [setFontMenu(_:)](appkit/nsfontmanager/setfontmenu(_:).md)
- [fontMenu(_:)](appkit/nsfontmanager/fontmenu(_:).md)

### Accessing the Action Property

- [action](appkit/nsfontmanager/action.md)
- [target](appkit/nsfontmanager/target.md)

### Setting Attributes

- [setSelectedAttributes(_:isMultiple:)](appkit/nsfontmanager/setselectedattributes(_:ismultiple:).md)
- [convertAttributes(_:)](appkit/nsfontmanager/convertattributes(_:).md)

### Deprecated

- [Deprecated Symbols](appkit/nsfontmanager-deprecated-symbols.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSMenuItemValidation](appkit/nsmenuitemvalidation.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Management

- [NSFontCollection](appkit/nsfontcollection.md)
- [NSMutableFontCollection](appkit/nsmutablefontcollection.md)
- [NSFontCollectionOptions](appkit/nsfontcollectionoptions.md)
