---
title: NSLayoutManagerDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/nslayoutmanagerdelegate
---

# NSLayoutManagerDelegate

A set of optional methods that delegates of layout manager objects implement.

## Declaration

```swift
protocol NSLayoutManagerDelegate : NSObjectProtocol
```

## Topics

### Invalidating glyphs and layout

- [layoutManagerDidInvalidateLayout(_:)](uikit/nslayoutmanagerdelegate/layoutmanagerdidinvalidatelayout(_:).md)
- [layoutManager(_:shouldGenerateGlyphs:properties:characterIndexes:font:forGlyphRange:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:shouldgenerateglyphs:properties:characterindexes:font:forglyphrange:).md)
- [layoutManager(_:shouldUse:forControlCharacterAt:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:shoulduse:forcontrolcharacterat:).md)
- [NSLayoutManager.ControlCharacterAction](uikit/nslayoutmanager/controlcharacteraction.md)

### Responding to text container layout

- [layoutManager(_:didCompleteLayoutFor:atEnd:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:didcompletelayoutfor:atend:).md)
- [layoutManager(_:textContainer:didChangeGeometryFrom:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:textcontainer:didchangegeometryfrom:).md)

### Handling line fragments

- [layoutManager(_:shouldBreakLineByHyphenatingBeforeCharacterAt:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:shouldbreaklinebyhyphenatingbeforecharacterat:).md)
- [layoutManager(_:shouldBreakLineByWordBeforeCharacterAt:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:shouldbreaklinebywordbeforecharacterat:).md)
- [layoutManager(_:lineSpacingAfterGlyphAt:withProposedLineFragmentRect:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:linespacingafterglyphat:withproposedlinefragmentrect:).md)
- [layoutManager(_:paragraphSpacingAfterGlyphAt:withProposedLineFragmentRect:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:paragraphspacingafterglyphat:withproposedlinefragmentrect:).md)
- [layoutManager(_:paragraphSpacingBeforeGlyphAt:withProposedLineFragmentRect:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:paragraphspacingbeforeglyphat:withproposedlinefragmentrect:).md)
- [layoutManager(_:boundingBoxForControlGlyphAt:for:proposedLineFragment:glyphPosition:characterIndex:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:boundingboxforcontrolglyphat:for:proposedlinefragment:glyphposition:characterindex:).md)
- [layoutManager(_:shouldSetLineFragmentRect:lineFragmentUsedRect:baselineOffset:in:forGlyphRange:)](uikit/nslayoutmanagerdelegate/layoutmanager(_:shouldsetlinefragmentrect:linefragmentusedrect:baselineoffset:in:forglyphrange:).md)

### Managing temporary attribute support

- [layoutManager(_:shouldUseTemporaryAttributes:forDrawingToScreen:atCharacterIndex:effectiveRange:)](appkit/nslayoutmanagerdelegate/layoutmanager(_:shouldusetemporaryattributes:fordrawingtoscreen:atcharacterindex:effectiverange:).md)

### Deprecated

- [Control Characters](uikit/1619233-control-characters.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Managing the layout process

- [delegate](uikit/nslayoutmanager/delegate.md)
