---
title: NSFont
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsfont
---

# NSFont

The representation of a font in an app.

## Declaration

```swift
class NSFont
```

## Overview

Overview NSFont objects represent fonts to an app, providing access to characteristics of the font and assistance in laying out glyphs relative to one another. Font objects are also used to establish the current font for drawing text directly into a graphics context, using the set() method. You don’t create NSFont objects using the alloc and init methods. Instead, you use either init(descriptor:size:) or init(name:size:) to look up an available font and alter its size or matrix to your needs. These methods check for an existing font object with the specified characteristics, returning it if there is one. Otherwise, they look up the font data requested and create the appropriate object. NSFont also defines a number of methods for getting standard system fonts, such as systemFont(ofSize:), userFont(ofSize:), and messageFont(ofSize:). To request the default size for these standard fonts, pass a negative number or 0 as the font size. For more information on system fonts, see Human Interface Guidelines > Typography.

## Topics

### Creating Arbitrary Fonts

- [init(name:size:)](appkit/nsfont/init(name:size:).md)
- [init(descriptor:size:)](appkit/nsfont/init(descriptor:size:).md)
- [init(descriptor:textTransform:)](appkit/nsfont/init(descriptor:texttransform:).md)
- [init(name:matrix:)](appkit/nsfont/init(name:matrix:).md)

### Creating User Fonts

- [userFont(ofSize:)](appkit/nsfont/userfont(ofsize:).md)
- [userFixedPitchFont(ofSize:)](appkit/nsfont/userfixedpitchfont(ofsize:).md)

### Creating System Fonts

- [preferredFont(forTextStyle:options:)](appkit/nsfont/preferredfont(fortextstyle:options:).md)
- [systemFont(ofSize:)](appkit/nsfont/systemfont(ofsize:).md)
- [systemFont(ofSize:weight:)](appkit/nsfont/systemfont(ofsize:weight:).md)
- [boldSystemFont(ofSize:)](appkit/nsfont/boldsystemfont(ofsize:).md)
- [monospacedSystemFont(ofSize:weight:)](appkit/nsfont/monospacedsystemfont(ofsize:weight:).md)
- [monospacedDigitSystemFont(ofSize:weight:)](appkit/nsfont/monospaceddigitsystemfont(ofsize:weight:).md)
- [systemFontSize](appkit/nsfont/systemfontsize.md)
- [smallSystemFontSize](appkit/nsfont/smallsystemfontsize.md)
- [NSFont.Weight](appkit/nsfont/weight.md)
- [NSFont.TextStyle](appkit/nsfont/textstyle.md)
- [NSFont.TextStyleOptionKey](appkit/nsfont/textstyleoptionkey.md)

### Creating UI Element Fonts

- [labelFont(ofSize:)](appkit/nsfont/labelfont(ofsize:).md)
- [messageFont(ofSize:)](appkit/nsfont/messagefont(ofsize:).md)
- [menuBarFont(ofSize:)](appkit/nsfont/menubarfont(ofsize:).md)
- [menuFont(ofSize:)](appkit/nsfont/menufont(ofsize:).md)
- [controlContentFont(ofSize:)](appkit/nsfont/controlcontentfont(ofsize:).md)
- [titleBarFont(ofSize:)](appkit/nsfont/titlebarfont(ofsize:).md)
- [paletteFont(ofSize:)](appkit/nsfont/palettefont(ofsize:).md)
- [toolTipsFont(ofSize:)](appkit/nsfont/tooltipsfont(ofsize:).md)
- [labelFontSize](appkit/nsfont/labelfontsize.md)
- [systemFontSize(for:)](appkit/nsfont/systemfontsize(for:).md)

### Using a Font to Draw

- [set()](appkit/nsfont/set().md)
- [set(in:)](appkit/nsfont/set(in:).md)

### Getting Font Metrics and Information

- [pointSize](appkit/nsfont/pointsize.md)
- [coveredCharacterSet](appkit/nsfont/coveredcharacterset.md)
- [fontDescriptor](appkit/nsfont/fontdescriptor.md)
- [isFixedPitch](appkit/nsfont/isfixedpitch.md)
- [mostCompatibleStringEncoding](appkit/nsfont/mostcompatiblestringencoding.md)
- [Advanced Font Metrics](appkit/advanced-font-metrics.md)

### Getting Information About Glyphs

- [numberOfGlyphs](appkit/nsfont/numberofglyphs.md)
- [NSGlyph](appkit/nsglyph.md)
- [NSControlGlyph](appkit/nscontrolglyph.md)
- [NSNullGlyph](appkit/nsnullglyph.md)

### Getting Font Names

- [displayName](appkit/nsfont/displayname.md)
- [familyName](appkit/nsfont/familyname.md)
- [fontName](appkit/nsfont/fontname.md)

### Setting User Fonts

- [setUser(_:)](appkit/nsfont/setuser(_:).md)
- [setUserFixedPitch(_:)](appkit/nsfont/setuserfixedpitch(_:).md)

### Vertical Fonts

- [isVertical](appkit/nsfont/isvertical.md)
- [vertical](appkit/nsfont/vertical-6ym79.md)

### Responding to Font-Related Notifications

- [antialiasThresholdChangedNotification](appkit/nsfont/antialiasthresholdchangednotification.md)
- [fontSetChangedNotification](appkit/nsfont/fontsetchangednotification.md)

### Deprecated

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

### Type Aliases

- [NSFont.Width](appkit/nsfont/width.md)

### Instance Properties

- [printer](appkit/nsfont/printer.md)
- [renderingMode](appkit/nsfont/renderingmode.md)
- [screen](appkit/nsfont/screen.md)

### Instance Methods

- [advancement(forGlyph:)](appkit/nsfont/advancement(forglyph:).md)
- [boundingRect(forGlyph:)](appkit/nsfont/boundingrect(forglyph:).md)
- [getAdvancements(_:forGlyphs:count:)](appkit/nsfont/getadvancements(_:forglyphs:count:).md)
- [getAdvancements(_:forPackedGlyphs:length:)](appkit/nsfont/getadvancements(_:forpackedglyphs:length:).md)
- [getBoundingRects(_:forGlyphs:count:)](appkit/nsfont/getboundingrects(_:forglyphs:count:).md)
- [glyph(withName:)](appkit/nsfont/glyph(withname:).md)
- [screenFont(with:)](appkit/nsfont/screenfont(with:).md)
- [withSize(_:)](appkit/nsfont/withsize(_:).md)

### Type Methods

- [systemFont(ofSize:weight:width:)](appkit/nsfont/systemfont(ofsize:weight:width:).md)

### Structures

- [NSFont.FontSetChangedMessage](appkit/nsfont/fontsetchangedmessage.md)

### Initializers

- [init(coder:)](appkit/nsfont/init(coder:).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)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)

## See Also

### Font Data

- [NSFontDescriptor](appkit/nsfontdescriptor.md)
- [NSFontTraitMask](appkit/nsfonttraitmask.md)
- [NSFontFamilyClass](appkit/nsfontfamilyclass.md)
- [NSFontDescriptor.SymbolicTraits](appkit/nsfontdescriptor/symbolictraits-swift.struct.md)
- [NSFontAssetRequest](appkit/nsfontassetrequest.md)
- [NSFontSymbolicTraits](appkit/nsfontsymbolictraits.md)
