<!--
{
  "availability" : [
    "iOS: 3.2.0 -",
    "iPadOS: 3.2.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.5.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreText",
  "identifier" : "/documentation/CoreText/kCTRunDelegateAttributeName",
  "metadataVersion" : "0.1.0",
  "role" : "Global Variable",
  "symbol" : {
    "kind" : "Global Variable",
    "modules" : [
      "Core Text"
    ],
    "preciseIdentifier" : "c:@kCTRunDelegateAttributeName"
  },
  "title" : "kCTRunDelegateAttributeName"
}
-->

# kCTRunDelegateAttributeName

The run-delegate object to apply to an attribute range of the string.

```
let kCTRunDelegateAttributeName: CFString
```

## Discussion

The value must be a [`CTRunDelegate`](/documentation/CoreText/CTRunDelegate) object. The run delegate controls such typographic traits as glyph ascent, descent, and width. The values returned by the embedded run delegate apply to each glyph resulting from the text in that range. Because an embedded object is only a display-time modification, you should avoid applying this attribute to a range of text with complex behavior, such as text having a change of writing direction or having combining marks. It is thus recommended you apply this attribute to a range containing the single character U+FFFC.

## See Also

[`CTRunDelegate`](/documentation/CoreText/CTRunDelegate)

A run delegate.



---

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)