how to set attributes in NSAttributedString in iOS?

I’m trying to set the infamous NSFontAttributeName property of an NSAttributedString in iOS but it just doesn’t seem to work:

  1. first off, none of the NS constants seem defined for iOS
  2. I read somewhere that I could instead work around it by passing
    the CoreText consts instead. Fine… but still, The attribute
    expects an NSFont and I’m stuck with UIFont or CTFontRef, neither of
    which seems to work:

this doesn’t work:

  • Saving custom attributes in NSAttributedString
  • Why does the initial call to NSAttributedString with an HTML string take over 100 times longer than subsequent calls?
  • NSAttributedString alignment not working on html content
  • UITextField attributedPlaceholder has no effect
  • Appending NSAttributedString with line break returns attributed string with wrong format
  • How could you make a uilabel wrap around an image (like shown)
  • CTFontRef ctFont = CTFontCreateWithName((CFStringRef)[UIFont boldSystemFontOfSize:16].fontName, [UIFont boldSystemFontOfSize:16].pointSize, NULL);
    [myAttString addAttribute:(NSString*)kCTFontNameAttribute
                              range:NSMakeRange(0, myAttString.length-1)];

    this doesn’t work:

    [myAttString addAttribute:(NSString*)kCTFontNameAttribute
                              value:[UIFont boldSystemFontOfSize:16]
                              range:NSMakeRange(0, myAttString.length-1)];

    Is there anyway to make this work?

    3 Solutions Collect From Internet About “how to set attributes in NSAttributedString in iOS?”

    I found it!

    basically, turns out the string constant for the dictionary key I should been using is kCTFontAttributeName

    This whole thing is a show…

    The NS constants and full attributedString support will be there. Not yet in iOS5 though.

    The CoreText constants do work and CTFontRef is the way I use it as well. The first block of your code should work. Can you verify your other bits of code that the problem ain’t elsewhere.

    do this way:

    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.alignment = .center
    let attributes = [NSParagraphStyleAttributeName :  paragraphStyle,
                      NSFontAttributeName :   UIFont.systemFont(ofSize: 24.0),
                      NSForegroundColorAttributeName :,
    let attrString = NSAttributedString(string: "Stop\nall Dance",
                                   attributes: attributes)