<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSTypesetter/boundingBox(forControlGlyphAt:for:proposedLineFragment:glyphPosition:characterIndex:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSTypesetter(im)boundingBoxForControlGlyphAtIndex:forTextContainer:proposedLineFragment:glyphPosition:characterIndex:"
  },
  "title" : "boundingBox(forControlGlyphAt:for:proposedLineFragment:glyphPosition:characterIndex:)"
}
-->

# boundingBox(forControlGlyphAt:for:proposedLineFragment:glyphPosition:characterIndex:)

Returns the bounding rectangle for the specified control glyph with the specified parameters.

```
func boundingBox(forControlGlyphAt glyphIndex: Int, for textContainer: NSTextContainer, proposedLineFragment proposedRect: NSRect, glyphPosition: NSPoint, characterIndex charIndex: Int) -> NSRect
```

## Parameters

`glyphIndex`

The index of the control glyph in question.

`textContainer`

The text container to use to calculate the position.

`proposedRect`

The proposed line fragment rectangle.

`glyphPosition`

The position of the glyph in `textContainer`.

`charIndex`

The character index in `textContainer`.

## Return Value

The bounding rectangle of the control glyph at `glyphIndex`, at the given `glyphPosition` and character index `charIndex`, in `textContainer`.

## Discussion

The typesetter calls this method when it encounters a control glyph. The default behavior is to return zero width for control glyphs. A subclass can override this method to do something different, such as implement a way to display control characters.

[`NSGlyphGenerator`](/documentation/AppKit/NSGlyphGenerator) can choose whether or not to map control characters to [`NSControlGlyph`](/documentation/AppKit/NSControlGlyph). Tab characters, for example, do not use this facility.

---

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)